Files
euler-project/problems/003_problem.py
2020-04-18 22:30:49 -04:00

57 lines
1.1 KiB
Python

# Problem 3:
#
# The prime factors of 13195
# are 5, 7, 13 and 29.
#
# What is the largest prime
# factor of the number 600851475143 ?
#
import decorators
import time
#def treat_evens(n):
# mod_is_zero = True
# done = True
# dividend = 2
# while mod_is_zero or done:
# done = dividend == n
# num = n/dividend
# mod_is_zero = 0 == n%dividend
# dividend *= 2
# print("{}".format(num))
# return num
# Create function that finds the next
# prime number when supplied with an
# intitial integer.
def return_next_prime(start_n,max_n):
start_n += 1
for candidate in range(start_n,max_n):
notPrime = False
if candidate in [0,1,2,3]:
yield candidate
for dividend in range(2,candidate):
if candidate%dividend == 0:
notPrime = True
if not notPrime:
yield candidate
@decorators.function_timer
def main():
orig = 600851475143
start = 3
returned_prime = start
while returned_prime < orig:
returned_prime = return_next_prime(start,orig).__next__()
print("A PRIME HAS BEEN FOUND!!!! ... {}".format(returned_prime))
start = returned_prime
main()