일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Self-loop attention
- Classificaion
- deep learning
- abstraction
- GNN
- Set Transformer
- overfitting
- elif
- pytorch
- machine learning
- sigmoid
- word2vec
- Python
- Transformer
- Attention
- python practice
- XOR
- sentence embedding
- NLP
- neural net
- Today
- Total
Research Notes
[Python Practice] While, If Statement - Find factors 본문
[Python Practice] While, If Statement - Find factors
jiachoi 2023. 7. 3. 16:35<Question>
# 정수 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개입니다.
<Answer>
n = 120
i = 1
count = 0
while i<=n:
if n%i==0:
print(i)
count = count + 1
i = i + 1
print("120의 약수는 총 %d개 입니다." %(count))
<Explanation>
이 문제를 풀기 위해선 1. 약수 뽑아내기 2.약수 개수 알아내기를 해야한다.
1. 약수 뽑아내기
문제는 120의 약수지만 풀때는 결과값이 바로바로 나오도록 8의 약수를 뽑아내는 것으로 구상하였다.
일단 필요한것은 정수n, 약수 i 가 있다. 문제에서와 같이 n을 i 로 나눴을때 나머지가 0이면 i는 n의 약수 이다.
이를 통해 ( n % i == 0 ) 이라는 조건식을 만들어 낼 수 있다. 이 조건식은 if 절을 사용하여 나타낼 수 있다.
while문을 사용하여 반복할 수 있도록 반복문을 돌려야 한다.
또한 약수인 i 는 정수 n보다 크면 안되기 때문에 while 문의 조건절에서 i<=n 이라는 조건을 줘야 한다. (이는 i>n 이 되면 값이 False가 되기 때문에 반복문을 멈추게 하는 조건이다. )
여기까지 약수를 뽑아내기 위한 간략한 설명이다. 이를 코드화 하면 아래와 같다.
# 약수 뽑아내기
n = 8
i = 1
while i<=n :
if n%i==0 :
print(i)
i = i + 1
2. 약수의 개수 알아내기
약수의 개수를 나타낼 변수를 하나 더 지정하여야 한다. 나는 count라는 변수를 지정하였고 초기 값은 0으로 설정하였다.
또한 약수가 한개씩 나올때, 즉 i가 출력될때마다 count 는 +1 개가 되어야 한다. 이를 통해 count = count + 1 이라는 식이 만들어 진다. 이는 if 절이 수행 되는 곳에 있어야 하므로 이의 하위 수행부분으로 들어간다.
( 추가할 부분 - count = 0 / count = count + 1 / 맨 마지막 count 출력부분)
n = 8
i = 1
count = 0
while i<=n :
if n%i == 0:
print(i)
count = count + 1
i = i + 1
print("8의 약수는 총 %d개 입니다." %(count))
정답은 n = 8 을 n = 120 으로 하면 같은 결과가 나온다.

출력화면
'Programming Language > Python' 카테고리의 다른 글
[Python Practice] While/If Statement - Find compound interest costs (0) | 2023.07.03 |
---|---|
[Python Practice] If Statement Example - Grade Calculator (0) | 2023.07.03 |
[Python Practice] While Statement Example - Print Divisible Numbers (0) | 2023.07.03 |
[Python] Control Statement: While, If/Else/Elif (0) | 2023.07.03 |
[Python Practice] Determine even/odd number (0) | 2023.07.03 |