素数チェッカー
数が素数かどうかを確認し、指定範囲の素数をすべて表示。
よくある質問
コード実装
def is_prime(n: int) -> bool:
"""Check if n is a prime number."""
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(n**0.5) + 1, 2):
if n % i == 0:
return False
return True
def primes_up_to(limit: int) -> list[int]:
"""Sieve of Eratosthenes: find all primes up to limit."""
if limit < 2:
return []
sieve = [True] * (limit + 1)
sieve[0] = sieve[1] = False
for i in range(2, int(limit**0.5) + 1):
if sieve[i]:
for j in range(i*i, limit + 1, i):
sieve[j] = False
return [i for i, v in enumerate(sieve) if v]
print(is_prime(17)) # True
print(is_prime(18)) # False
print(primes_up_to(50)) # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.