diff options
| -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 |
