파이썬 예제 : 약수 찾기
예제를 풀면서 파이썬(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
요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육
'TESTING > PROGREMING' 카테고리의 다른 글
[파이썬 코딩 - Chap.11] 실습 피보나치 수열 문제 풀어보기 (0) | 2020.11.14 |
---|---|
[파이썬 코딩 - Chap.10] 실습 미니의 우승 상금 문제 풀어보기 (0) | 2020.11.12 |
[파이썬 코딩 - Chap.8] 실습 간단한 수학(2) 문제 풀어보기 (0) | 2020.11.04 |
[파이썬 코딩 - Chap.7] 실습 간단한 수학(1) 문제 풀어보기 (0) | 2020.11.04 |
[파이썬 코딩 - Chap.6] 실습 간단한 학점 계산기 문제 풀어보기 (0) | 2020.11.04 |