알고리즘/백준
백준 1929: 소수 구하기 (Python)
sssbin
2021. 8. 31. 21:43
https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
처음 코드 - 시간 초과
m, n = map(int, input().split())
for i in range(m,n+1):
k = 2
cnt = 0
if i == 1:
cnt += 1
while i > k:
if i % k == 0:
cnt += 1
break
k += 1
if cnt == 0:
print(i)
문제 설명에 에라토스테네스의 체라고 적혀있는걸 발견...!
그래서 바로 검색해보고 다시 알고리즘을 생각했다
m, n = map(int, input().split())
num = [i for i in range(m,n+1)]
for i in num:
cnt = 0
if i == 1:
cnt += 1
for p in range(2, int(i**0.5)+1):
if i % p == 0:
cnt += 1
break
if cnt == 0:
print(i)
성공!
엇 근데 다시 보니까 리스트 왜 했지......ㅎ