문제 출처 : https://www.acmicpc.net/problem/1929
import sys
m,n = map(int,sys.stdin.readline().split())
for i in range(m, n+1) :
err = 0
if i > 1 :
for j in range (2,i) :
if i % j == 0 :
err += 1
if err == 0 :
print(i)
👉🏻 다른 문제들과 마찬가지로 1부터 숫자까지 모든 수를 나눠서 소수를 찾았는데 숫자가 크게 주어지다보니 시간초과가 발생했다.
👉🏻 다른 사람들 코드를 참고하니 모두가 '에라토스테네스의 체'를 사용하였다. 소수의 배수를 모두 지워서 소수만 남기는 방법이다.
import sys
m,n = map(int,sys.stdin.readline().split())
def isPrime(num) :
if num == 1:
return False
else :
for i in range(2, int(num**0.5)+1) :
if num % i == 0 :
return False
return True
for i in range(m, n+1) :
if isPrime(i) :
print(i)
👉🏻 제곱근은 (num**0.5)로 작성한다.
사람들 정말 효율적이게 코드 작성 잘한다.
그래도 나도 늘고 있으니깐 언젠가는 저렇게 짤 수 있을거다.
그날까지 파이팅🥰