임의의 자연수 n -> n보다 크고 2n보다 작거나 같은 소수는 적어도 1개 존재
ex) n = 10일경우 범위는 11,12,13,14,15,16,17,18,19,20 -> 소수는 4개 존재 (11,13,17,19)
위와같은 n이 주어졌을때 소수의 개수를 구하는 프로그램 만들기
첫번째 : 소수 판별 알고리즘 작성
두번째 : 주어진 n에 대해서 범위를 구하고 소수 판별 알고리즘 적용
# 소수 판별 알고리즘
def is_prime_number(n):
# 2 부터 n의 제곱근까지 모든 수를 확인한다.
for i in range(2, int(n**0.5)+1):
# 위 범위안에 수가 n을 나누어 떨어진다면 소수
if n % i == 0:
return False
return True
while (True):
n = int(input())
if n == 0:
break
prime_count = 0
# n보다 크고 2n보다 작은 범위에서 소수 판별 하여 prime_count에 추가
for i in range(n+1, 2*n + 1):
if is_prime_number(i) == True:
prime_count += 1
print(prime_count)