From b1bba79dc000e1af88261b30a043ad58a2991a99 Mon Sep 17 00:00:00 2001 From: Shaun Setlock Date: Sat, 18 Apr 2020 22:30:49 -0400 Subject: [PATCH] Automatic commit performed through alias... --- problems/003_problem.py | 56 +++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/problems/003_problem.py b/problems/003_problem.py index 22c9fa4..3342a19 100644 --- a/problems/003_problem.py +++ b/problems/003_problem.py @@ -8,26 +8,50 @@ # 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 +#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 - orig = 8 - num = treat_evens(orig) - - print("Highest prime of 600851475143 is {}".format(num)) + 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() \ No newline at end of file