-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem 32
More file actions
33 lines (25 loc) · 1009 Bytes
/
Copy pathproblem 32
File metadata and controls
33 lines (25 loc) · 1009 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"""
We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital.
The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.
Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.
HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum.
"""
digits = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
def checked(N,M):
d = str(N) + str(M) + str(N*M)
d = sorted(d)
if d == digits:
return True
return False
def has_duplicate_digits(num):
return len(set(str(num))) != len(str(num))
W = set()
for a in range (1,999):
if has_duplicate_digits(a):
continue
for b in range (a + 1,9999) :
if has_duplicate_digits(b):
continue
if checked(a,b) :
W.add(a*b)
print(sum(W))