• 방법 1. 정답!! try - except 예외처리
n = int(input())
num = 2
while num <= n:
try:
if n % num == 0:
print(num)
n = n // num
else:
num += 1
except:
break
• 방법 2. 정답!! try - except 사용 X
n = int(input())
num = 2
while num <= n:
if n == 1:
break
if n % num == 0:
print(num)
n = n // num
else:
num += 1
• 방법 3. 정답!! 나누면서 몫 출력
n = int(input())
result = list(range(2, n))
result.sort(reverse=True)
for i in result:
if n % i == 0:
print(n // i)
n = i
• 방법 4. 오답.. 나누는 수(제수)를 출력
n = int(input())
result = list(range(2, n))
result.sort(reverse=True)
print(result)
for i in result:
if n % i == 0:
print(i) // 나누는 수가 무조건 2->3->4->••• 처럼 증가하게 됨
n = n // i
• 방법 4. 다음 반복문에서 i가 무조건 +1씩 증가하게 되므로 불가능한 식이된다.
즉, 12를 i가 2일때 6으로 나누어 떨어져 i(2)를 출력한다.
다음 반복문에서 2로 한번 더 나누어 질 수 있음에도 불구하고 i는 3이 되어야 한다.
(=> 반복된 인수가 나올 수가 없다)
🔎 sort( )
- 리스트.sort(reverse=True)
리스트.sort()의 반대로 역순으로 정렬한다.