Skip to content

Commit 629369a

Browse files
Improve Project Euler problem 203 solution 1 (#4807)
1 parent a4d68d6 commit 629369a

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

project_euler/problem_203/sol1.py

+5-7
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,15 @@ def get_primes_squared(max_number: int) -> list[int]:
7575
>>> get_primes_squared(100)
7676
[4, 9, 25, 49]
7777
"""
78-
max_prime = round(math.sqrt(max_number))
79-
non_primes = set()
78+
max_prime = math.isqrt(max_number)
79+
non_primes = [False] * (max_prime + 1)
8080
primes = []
8181
for num in range(2, max_prime + 1):
82-
if num in non_primes:
82+
if non_primes[num]:
8383
continue
8484

85-
counter = 2
86-
while num * counter <= max_prime:
87-
non_primes.add(num * counter)
88-
counter += 1
85+
for num_counter in range(num ** 2, max_prime + 1, num):
86+
non_primes[num_counter] = True
8987

9088
primes.append(num ** 2)
9189
return primes

0 commit comments

Comments
 (0)