We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent a4d68d6 commit 629369aCopy full SHA for 629369a
project_euler/problem_203/sol1.py
@@ -75,17 +75,15 @@ def get_primes_squared(max_number: int) -> list[int]:
75
>>> get_primes_squared(100)
76
[4, 9, 25, 49]
77
"""
78
- max_prime = round(math.sqrt(max_number))
79
- non_primes = set()
+ max_prime = math.isqrt(max_number)
+ non_primes = [False] * (max_prime + 1)
80
primes = []
81
for num in range(2, max_prime + 1):
82
- if num in non_primes:
+ if non_primes[num]:
83
continue
84
85
- counter = 2
86
- while num * counter <= max_prime:
87
- non_primes.add(num * counter)
88
- counter += 1
+ for num_counter in range(num ** 2, max_prime + 1, num):
+ non_primes[num_counter] = True
89
90
primes.append(num ** 2)
91
return primes
0 commit comments