9월 9, 2017의 게시물 표시

python2 소인수 구하는 알고리즘

#-*- coding:utf-8 -*- #소인수 : 어떤 정수를 구성하는 인수 중에서 그 수의 소수 #예) 12의 약수는 1,2,3,4,6 => 12의 약수 중 소수는 2,3, => 2x2x3 =12 => 2,2,3 #소인수 분해 : 소수를 이용하여 그 수를 만드는 곱의 형태로 표현하는 과정 #예) 12의 소운수 분해 결과 => 2x2x3 import sys N = input("숫자") if(N<=2):   sys.exit(1)  #입력받은 값이 2와 같거나 작으면 종 A=[] k=1 while(True):     k=k+1#k=2로 만들어줌 2부터 항상 나누어줌     if(N%k ==0): # 12/k 나누어 떨어지면 리스트에 넣어줌         A.append(k)         N = N/k# 실제로 나눔 몫을 넣음         if(N==1):#나눈후 몫이 1이 되면 반복문 빠져나와             break         else:             k=1 # k=1는 다시 1로 초기 for l in range(0,len(A)):     print A[l]