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]

댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud