소수를 구하는 방법
마지막에 소수만 남게 된다
def sieve(n):
is_prime = [True] * (n+1)
is_prime[0] = False
is_prime[1] = False
for candidate in range(2, int(n ** 0.5) + 1):
if not is_prime[candidate]:
continue
for multiple in range(candidate*candidate, n+1, candidate):
is_prime[multiple] = False
return [idx for idx, value in enumerate(is_prime) if value]
def prime(n):
for i in range(2, n // 2 + 1):
if n % i == 0:
return False
return True