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]

댓글

이 블로그의 인기 게시물

Spring Boot Actuator readiness, liveness probes on k8s

About Kafka Basic

sneak peek jitpack

About idempotent

About G1 GC

About ZGC

About JVM Warm up

I need to know a little JVM

HackerRank Java Between Two Sets

Java - HashMap (feat. LinkedList, Tree.. maybe Later)