[TIL] 오늘의 공부/코딩테스트
11653번 소인수 분해
개발소연자
2023. 1. 26. 11:11
def prime(N):
prime_list = []
for i in range(2, N):
is_prime = True
for j in range(2, i):
if i%j == 0:
is_prime = False
break
if is_prime == True:
prime_list.append(i)
return prime_list
N = int(input())
prime_list = prime(N)
while N > 1:
if N%prime_list[0] == 0:
N //= prime_list[0]
print(prime_list[0])
else:
prime_list.pop(0)
N = int(input())
prime = 2
while N > 1:
if N%prime == 0:
N //= prime
print(prime)
else:
prime += 1
for i in range(2, prime):
if prime%i == 0:
prime += 1
break
위에 코드가 더 가독성 좋은데 시간 복잡도가 높음
얼마 차이 안나 보이는데 왜지
요즘 자꾸 백준에서 시간 초과로 튕긴다..
아 코딩 테스트 보고 취업하고 싶은데.. 어렵네..
https://github.com/annkwon1123/100jun.git
GitHub - annkwon1123/100jun
Contribute to annkwon1123/100jun development by creating an account on GitHub.
github.com
https://www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net