diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2010-06-21 15:57:07 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:32:41 +0200 |
| commit | 29ff377f9a54749198ce600f5981a9c17ba140dc (patch) | |
| tree | da0f8e71c5fda4533b779a492f6231af84dcfc8f | |
| parent | c88209fdaa55213fe8a036ef6bd3f6fc78e680bf (diff) | |
projecteuler solution 47
| -rw-r--r-- | src/projecteuler/047.py | 25 | ||||
| -rw-r--r-- | src/projecteuler/common.py | 4 |
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 |
