Решал таку загадку: Расставьте все десять цифр 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 в таком порядке, чтобы получившееся число делилось на все числа от 2 до 18.
Как она решается правильно, я знаю.
Написал следующий код для перебора:
from itertools import permutations
minimal = 2
maximal = 18
def check(dig, n):
if n < maximal+1:
if dig % n == 0:
n = n + 1
check(dig, n)
else:
if n == maximal+1:
print(str(dig)+ “ делится без остатка на все числа от ” + str(minimal) + “ до ” + str(maximal))
for item in permutations('1234567890', 10):
dig=int(''.join(item))
check(dig, minimal)
получаю
2438195760 делится без остатка на все числа от 2 до 18
3785942160 делится без остатка на все числа от 2 до 18
4753869120 делится без остатка на все числа от 2 до 18
4876391520 делится без остатка на все числа от 2 до 18
И нифига она не правильно считает. На некоторые числа же с остатками делится. Как так получилось?!
Спасибо.