-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3.py
More file actions
37 lines (26 loc) · 715 Bytes
/
Copy path3.py
File metadata and controls
37 lines (26 loc) · 715 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143?"""
def main():
print(solve(600851475143))
def solve(number):
return max(generate_factors(number))
def generate_factors(number):
prime_generator = gen_primes()
prime = next(prime_generator)
while prime <= number:
if number % prime == 0:
number //= prime
yield prime
else:
prime = next(prime_generator)
def gen_primes():
p = 2
yield p
primes = [p]
while True:
p += 1
if 0 not in [p % x for x in primes]:
primes.append(p)
yield p
if __name__ == "__main__":
main()