품생품사(品生品死)

소프트웨어 품질에 살고 품질에 죽는 그런 평범한 일상 블로그

TESTING/PROGREMING

[파이썬 코딩 - Chap.9] 실습 간단한 약수 찾기 문제 풀어보기

품생품사(品生品死) 2020. 11. 10. 23:29
반응형

파이썬 예제 : 약수 찾기

예제를 풀면서 파이썬(Python)을 익혀 보도록 하겠습니다.

실습 문제로는 약수를 찾는 문제입니다.

 

문제

정수 n의 약수는 n을 나누었을 때 나누어 떨어지는 수입니다. 만약 정수 i가 정수 n의 약수라면, n을 i로 나누었을 때 나머지가 0이 나와야 하는 거죠.

 

정수 120의 약수를 모두 출력하고, 총 몇개의 약수가 있는지 출력하는 프로그램을 써 보세요. 아래처럼 콘솔에 출력되어야 합니다.

 

출력 예시

1
2
3
4
5
6
8
10
12
15
20
24
30
40
60
120
120의 약수는 총 16개입니다.

 

힌트

1. 120의 약수를 모두 찾아야 하는데요. 그러면 120이 1로 나누어 떨어지는지 확인하고, 2로 나누어 떨어지는지 확인하고, 3으로 나누어 떨어지는지 확인하고... 이런 식으로 120까지 나누어 떨어지는지 확인하면 됩니다.

 

2. '나누어 떨어진다'는 건 코드로 어떻게 나타낼까요? 변수 i가 4로 나누어 떨어진다면, i % 4 == 0은 True가 나올 것입니다.

 

3. 약수를 세는 것은 일단 미루어 두고, 약수를 모두 출력하는 코드부터 작성해 봅시다.

N = 120
i = 1

while i <= N:
    if N % i == 0:
        print(i)
    i += 1

참고로 i += 1은 if문 밖에 있어야 합니다. 그렇지 않으면 끝이 안 나는 "무한 루프"에 빠지게 됩니다. 주의해 주세요!

 

4. 이 문제에서는 약수를 모두 출력하는 것뿐만 아니라 약수의 총 개수도 출력해야 합니다. 그러기 위해서는 개수를 세기 위한 변수를 하나 만들어야겠죠? 변수 이름은 count 같은 게 좋을 것 같습니다!

 

5. 힌트 4에서 언급한 count 변수는 어떻게 활용해야 할까요? 120의 약수를 발견했을 때마다 1씩 늘려 주면 되겠죠?

 

 

정답

main.py
N = 120
i = 1
count = 0

while i <= N:
    if N % i == 0:
        print(i)
        count += 1
    i += 1

print(f"{N}의 약수는 총 {count}개입니다.")

 

Related References

 

코딩이 처음이라면, 코드잇

월 3만원대로 Python, JavaScript, HTML/CSS, Java 등 1,600개 이상 프로그래밍 강의를 무제한 수강하세요

www.codeit.kr:443

This is coding_000
PYTHON 프로그래핑

요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육

728x90
반응형