def is_prime(num):
if num <= 1:
return False
if num == 2 or num == 3:
return True
if num % 2 == 0 or num % 3 == 0:
return False
i = 5
while i*i <= num:
if num % i == 0 or num % (i+2) == 0:
return False
i += 6
return True
m, n = map(int, input().split())
result = []
for i in range(m,n+1):
if is_prime(i):
result.append(i)
for res in result:
print(res)
위 문제를 해결 하기 위한 방법은 다음과 같다.
def is_prime(num):
if num <= 1:
return False
if num == 2 or num == 3:
return True
if num % 2 == 0 or num % 3 == 0:
return False
i = 5
while i*i <= num:
if num % i == 0 or num % (i+2) == 0:
return False
i += 6
return True
설명은 다음 링크 참고 4134 다음 소수 문제 정답 및 설명