From 51528ab0a211e53f75c96be9fc7b885f5ff26fa3 Mon Sep 17 00:00:00 2001 From: Mathew Date: Mon, 8 Oct 2018 11:00:02 +0530 Subject: [PATCH 1/2] Modified for optimization check only primes before root --- Project_Euler/Problem_3.py | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/Project_Euler/Problem_3.py b/Project_Euler/Problem_3.py index edf5429..8c2dff2 100755 --- a/Project_Euler/Problem_3.py +++ b/Project_Euler/Problem_3.py @@ -1,18 +1,11 @@ -val = 600851475143 -i = int(val ** .5) - - -def normal_prime(num): - if(num == 1):return 0 - if(num < 3 ):return 1 - if(num % 2 == 0 ):return 0 - for i in xrange(3,int(num ** 0.5)+1,2): - if(num % i == 0):return 0 - return 1 - -while (i > 0): - - if(val % i == 0): - if(normal_prime(i) == 1): - print i - i -= 1 \ No newline at end of file +n = 600851475143 +i=2 +while i*i < n: + if n % i == 0: + while n%i == 0: + n//=i + i+=1 +if n%i == 0: + print(i) +else: + print(n) From 377ed3eea302aaec817d7dfdced925d0a7eb7232 Mon Sep 17 00:00:00 2001 From: Mathew Date: Mon, 8 Oct 2018 11:17:12 +0530 Subject: [PATCH 2/2] optimized code check only primes before root --- Project_Euler/Problem_7.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Project_Euler/Problem_7.py b/Project_Euler/Problem_7.py index b7ab445..bda6624 100755 --- a/Project_Euler/Problem_7.py +++ b/Project_Euler/Problem_7.py @@ -1,16 +1,16 @@ -import math -def prime(n): - for i in range(2, int(math.sqrt(n)) + 1 ): - if (n % i == 0): return False - return True - -num = 10001 -i = 2 -ans = 0 -while (num != 0): - if(prime(i) == True): - ans = i - num -= 1 - i += 1 -print ans - \ No newline at end of file +n = 1 +primes = [2] +num = 3 +while n < 10001: + flag = True + for prime in primes: + if prime*prime > num: + break + if num % prime == 0: + flag=False + break + if flag: + n+=1 + primes.append(num) + num += 2 +print (primes[-1])