summaryrefslogtreecommitdiff
path: root/Problem43.py
blob: 02f7c02d65ca2341fb8036edcba88116278fa294 (plain)
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
34
35
36
37
38
39
40
perm = [0,1,2,3,4,5,6,7,8,9]
divisors = [1,2,3,5,7,11,13,17]
def swap(i,j):
    k = perm[i]
    perm[i] = perm[j]
    perm[j] = k
result = 0
count,max = 1,3265920
while count < max:
    N = len(perm)
    i = N - 1
    while(perm[i-1] >= perm[i]):
        i = i - 1
    j = N
    while perm[j - 1] <= perm[i -1]:
        j = j - 1
    swap(i - 1, j - 1)
    i+=1
    j=N
    while(i < j):
        swap(i - 1, j - 1)
        i+=1
        j-=1
    divisible = True
    for x in range(1,len(divisors)):
        num = 100 * perm[x] + 10 * perm[x+1] + perm[x+2]
        if num % divisors[x] != 0:
            divisible = False
            break
    if (divisible):
        num = 0
        for x in range(0,len(perm)):
            num = 10*num +perm[x]
        result += num
    count+=1
print(result)