11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
#백준's Stage9 (기본수학) 11653번 소인수분해
# N이 주어짐 1<= N <= 10,000,000 자연수
# 각 줄의 소인수분해 값을 오름차순으로 출력
N = int(input())
m = 2
#2부터 나누고 나눈 값이 1이 될때까지 반복
while N != 1:
if N % m == 0:
N = N / m
print(m)
else: m += 1
## comments : 아래 처럼 소인수들을 List에 저장하여 출력하는 코드를 작성하였는데, 시간초과....
리스트로 저장할 경우 시간이 오래걸렸던 것으로 판단된다. 또는 함수를 호출하는데 오래걸렸거나
#한 숫자로 나눌 수 있을 떄가지 반복해서 나누는 함수
def factorization (N,n):
prime_list =[]
for i in range(N):
if N % n == 0:
N = N / n
prime_list.append(n)
elif N % n != 0: break
return int(N), prime_list
N = int(input())
prime_nos = []
for i in range(2,N+1):
temp_N, temp_list = factorization(N, i)
prime_nos += temp_list
N = temp_N
for j in prime_nos: print(j)
## 시간초과
'백준's 단계별 풀이' 카테고리의 다른 글
Stage_9 (기본수학2) 4948번 베르트랑 공준 (0) | 2021.04.08 |
---|---|
Stage_9 (기본수학2) 192번 소인수분해 (0) | 2021.04.06 |
Stage_8 (기본수학2) 2581번 소수 (0) | 2021.03.30 |
Stage_8 (기본수학2) 1978번 소수 찾기 (0) | 2021.03.23 |
Stage_8 (기본수학1) 1011번 Fly me to the Alpha Centauri (0) | 2021.03.21 |