https://www.acmicpc.net/problem/1929
1929번: 소수 구하기
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
www.acmicpc.net
나의 코드
import sys
m, n = map(int, sys.stdin.readline().split())
while m <= n:
for i in range(2, m+1):
if i == m:
print(i)
elif m % i == 0:
break
m += 1
시간초과가 뜬다...
다른분들의 풀이를 참고하니 소수 검사는 2부터 i의 제곱근까지만 검사하면 끝난다고..!!
30 = 1*30 = 2*15 = 3*10 = 5*6 이런식으로 30**0.5 = 5.xxx 이라 그렇다고 합니다...
또 하나 배워갑니다...
import sys
m, n = map(int, sys.stdin.readline().split())
for i in range(m, n+1):
if i == 1:
continue
for j in range(2, int(i**0.5)+1):
if i % j == 0:
break
else:
print(i)
'공부 > 알고리즘' 카테고리의 다른 글
[알고리즘][백준] 10872번 팩토리얼 - 파이썬(python) 풀이 (1) | 2024.02.29 |
---|---|
[알고리즘][백준] 6588번 골드바흐의 추측 - 파이썬(python) 풀이 (3) | 2024.02.29 |
[알고리즘][백준] 1934번 최소공배수 - 파이썬(python) 풀이 (1) | 2024.02.28 |
[알고리즘][백준] 2609번 최대공약수와 최소공배수 - 파이썬(python) 풀이 (1) | 2024.02.27 |
[알고리즘][백준] 11656번 접미사 배열 - 파이썬(python) 풀이 (0) | 2024.02.27 |