백준 11653번: 소인수분해
문제
접근
아래 풀이보다 그냥 간단한 반복문으로 i값을 증가시키는게 나을듯...
채점만 10분 넘게 걸리는 중
코드
📌 python
import sys
input = sys.stdin.readline
q = int(input())
sosu = [True] * (q+1)
sosu[0:2] = [False, False]
for num in range(2, int(len(sosu)**0.5) +1) :
if sosu[num] :
for i in range(num*num, len(sosu), num) :
sosu[i] = False
# print(sosu)
sosu_of_q = []
for t in range(2, len(sosu)) :
if sosu[t] :
sosu_of_q.append(t)
# print(sosu_of_q)
k = 0
while(k<len(sosu_of_q)) :
if q%sosu_of_q[k] == 0 :
print(sosu_of_q[k])
q = q/sosu_of_q[k]
elif q%sosu_of_q[k] != 0 :
if k == len(sosu_of_q) - 1 and q != 1 :
print(q)
k += 1
Author And Source
이 문제에 관하여(백준 11653번: 소인수분해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ryong9rrr/백준-11653번-소인수분해
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import sys
input = sys.stdin.readline
q = int(input())
sosu = [True] * (q+1)
sosu[0:2] = [False, False]
for num in range(2, int(len(sosu)**0.5) +1) :
if sosu[num] :
for i in range(num*num, len(sosu), num) :
sosu[i] = False
# print(sosu)
sosu_of_q = []
for t in range(2, len(sosu)) :
if sosu[t] :
sosu_of_q.append(t)
# print(sosu_of_q)
k = 0
while(k<len(sosu_of_q)) :
if q%sosu_of_q[k] == 0 :
print(sosu_of_q[k])
q = q/sosu_of_q[k]
elif q%sosu_of_q[k] != 0 :
if k == len(sosu_of_q) - 1 and q != 1 :
print(q)
k += 1
Author And Source
이 문제에 관하여(백준 11653번: 소인수분해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ryong9rrr/백준-11653번-소인수분해저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)