Problem 43 : Sub-string divisibility

Problem Statement

The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property.

Let d1 be the 1st digit, d2 be the 2nd digit, and so on. In this way, we note the following:

Find the sum of all 0 to 9 pandigital numbers with this property.

Solution

from itertools import permutations

a='1234567890'
p=permutations(a[:10])
sum1=0
for i in p:
    if i[0]!='0':
        temp=''.join(list(i))
        if int(temp[1:4])%2==0 and int(temp[2:5])%3==0 and int(temp[3:6])%5==0 and int(temp[4:7])%7==0 and int(temp[5:8])%11==0 and int(temp[6:9])%13==0 and int(temp[7:10])%17==0:
            sum1=sum1+int(temp)
print(sum1)

Output

16695334890