summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2010-06-21 15:57:07 +0200
committerReiner Herrmann <reiner@reiner-h.de>2014-08-31 20:32:41 +0200
commit29ff377f9a54749198ce600f5981a9c17ba140dc (patch)
treeda0f8e71c5fda4533b779a492f6231af84dcfc8f
parentc88209fdaa55213fe8a036ef6bd3f6fc78e680bf (diff)
projecteuler solution 47
-rw-r--r--src/projecteuler/047.py25
-rw-r--r--src/projecteuler/common.py4
2 files changed, 27 insertions, 2 deletions
diff --git a/src/projecteuler/047.py b/src/projecteuler/047.py
new file mode 100644
index 0000000..19f5185
--- /dev/null
+++ b/src/projecteuler/047.py
@@ -0,0 +1,25 @@
+from common import sieve
+
+primes = list(sieve(1000000).primes())
+primes.sort()
+
+factors = 4
+
+def check_prime_factors(x):
+ distinct = set()
+ for p in primes:
+ while x % p == 0:
+ x /= p
+ distinct.add(p)
+ if x == 1:
+ break
+ return len(distinct) == factors
+
+n = 644
+
+while True:
+ if check_prime_factors(n) and check_prime_factors(n+1) and check_prime_factors(n+2) and check_prime_factors(n+3):
+ print n
+ break
+ n += 1
+
diff --git a/src/projecteuler/common.py b/src/projecteuler/common.py
index 8bc4953..a903ff8 100644
--- a/src/projecteuler/common.py
+++ b/src/projecteuler/common.py
@@ -125,8 +125,8 @@ def prime_test(n): # aks test
if n <= r*r:
return True
- for a in xrange(1, math.floor(math.sqrt(phi(r))*logn)):
- # TODO if math.pow(x+a, n) !=
+ #for a in xrange(1, math.floor(math.sqrt(phi(r))*logn)):
+ # # TODO if math.pow(x+a, n) !=
return True