더북(TheBook)

프로그램 1.3.9 소인수 분해 (factors.py)

import sys
import stdio
 
n = int(sys.argv[1])
 
factor = 2
while factor*factor <= n:
    while (n % factor) == 0:
        # 소인수로 나눈 후 소인수를 출력한다.
        n //= factor 
        stdio.write(str(factor) + ' ')
    factor += 1
    # n의 모든 소인수는 factor보다 크거나 같다.
 
if n > 1:
    stdio.write(n)
stdio.writeln()
n
factor
분해할 부분
확인할 인수

이 프로그램은 모든 양의 정수를 소인수 분해해 출력한다. 코드는 간단하지만, 이 코드가 맞는지 확신이 들기까지는 곰곰이 생각해봐야 할 것이다.

% python3 factors.py 3757208
2 2 2 7 13 13 397
% python3 factors.py 287994837222311
17 1739347 9739789
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.