[Python] Python: Solution with pre-generated list of primes[Python] Python: Solution with pre-generated list of primes
🧮
Primes
Week 8, 2026
def main() -> None:
maximum = 10000 # input of program
primes = get_primes(maximum**2 + 1)
difference = 0
MinusOneCount = 0
AddOneCount = 0
for num in range(1, maximum+1):
n = num**2 - 1
if search(n, primes):
print(f"{num}^2 - 1 = {n}")
print(f"Difference: {num - difference}")
print()
difference = num
MinusOneCount += 1
n = num**2 + 1
if search(n, primes):
print(f"{num}^2 + 1 = {n}")
print(f"Difference: {num - difference}")
print()
difference = num
AddOneCount += 1
print("--- Counts ---")
print()
print(f"MinusOneCount: {MinusOneCount}")
print(f"AddOneCount: {AddOneCount}")
def get_primes(n: int) -> list[int]:
ns = []
primes = []
ns.append(2)
for i in range(3, n + 1, 2): ns.append(i)
n = len(ns)
for i in range(1, n):
if ns[i] != 0:
b = ns[i]
a = b * 2
while ((b + a) - 1) // 2 < n:
b += a
ns[(b - 1) // 2] = 0
for i in range(n - 1):
if ns[i] != 0:
primes.append(ns[i])
return primes
def search(num: int, primes: list[int]) -> bool:
a = 0
b = len(primes) - 1
while True:
i = int((a + b) / 2)
if num > primes[i]:
a = i
elif num < primes[i]:
b = i
else:
return True
if b - a == 1:
if num == primes[a] or num == primes[b]:
return True
return False
main()