Найти - Пользователи
Полная версия: Обсчет загадки
Начало » Python для новичков » Обсчет загадки
1
carin
Решал таку загадку: Расставьте все десять цифр 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

И нифига она не правильно считает. На некоторые числа же с остатками делится. Как так получилось?!
Спасибо.

Romissevd
Вроде бы все верно… Какие числа делятся с остатком?
 from itertools import permutations
from decimal import Decimal
minimal = 2
maximal = 18
def check(dig, n):
    if n < maximal+1:
        if dig % n == 0:
            n += 1
            check(dig, n)
    else:
        print(str(dig)+ "делится без остатка на все числа от" + str(minimal) + "до" + str(maximal))
        for x in range(2, 19):
            print('деление на {} = {}'.format(x, Decimal(dig)/Decimal(x)))
for item in permutations('1234567890', 10):
    dig=int(''.join(item))
    check(Decimal(dig), Decimal(minimal))
py.user.next
  
>>> def check(number, divmin, divmax):
...     for i in range(divmin, divmax + 1):
...         if number % i != 0:
...             return False
...     return True
... 
>>> for i in (2438195760, 3785942160, 4753869120, 4876391520):
...     print(i, check(i, 2, 18))
... 
2438195760 True
3785942160 True
4753869120 True
4876391520 True
>>> 
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB