diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2010-06-21 16:25:20 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:32:41 +0200 |
| commit | be6b51fb35411f2ed9dd1114b36e0b6d54fe1496 (patch) | |
| tree | 5e3cad122641bbbc14fb16640ec02421390de33d | |
| parent | 29ff377f9a54749198ce600f5981a9c17ba140dc (diff) | |
projecteuler solution 43
| -rw-r--r-- | src/projecteuler/043.py | 35 | ||||
| -rw-r--r-- | src/projecteuler/common.py | 4 |
2 files changed, 37 insertions, 2 deletions
diff --git a/src/projecteuler/043.py b/src/projecteuler/043.py new file mode 100644 index 0000000..2dd1db9 --- /dev/null +++ b/src/projecteuler/043.py @@ -0,0 +1,35 @@ +from common import pandigital + + +def check_number(i): + x = str(i) + if int(x[1:4]) & 1 != 0: + return False + if int(x[2:5]) % 3 != 0: + return False + if int(x[3:6]) % 5 != 0: + return False + if int(x[4:7]) % 7 != 0: + return False + if int(x[5:8]) % 11 != 0: + return False + if int(x[6:9]) % 13 != 0: + return False + if int(x[7:10]) % 17 != 0: + return False + return True + + +numbers = pandigital(0, 9).numbers(11) + +result = 0 + +for i in numbers: + if i < 1000000000: + continue + + if check_number(i): + result += i + +print result + diff --git a/src/projecteuler/common.py b/src/projecteuler/common.py index a903ff8..37f13ea 100644 --- a/src/projecteuler/common.py +++ b/src/projecteuler/common.py @@ -31,9 +31,9 @@ class sieve: class pandigital: # create n-digit pandigital numbers - def __init__(self, n): + def __init__(self, start, end): self.digits = set() - for d in range(1, n+1): + for d in range(start, end+1): self.digits.add(d) # return set of digits that are not in x |
