Форум » Системы счисления » № 6221 » Ответить

№ 6221

ghaechka: [pre2]pmax = 0 for q in range(99, 2,-1): for p in range(99, 2,-1): for a in range(1,10): for b in range(1, 10): for c in range(0, 10): for d in range(0, 10): s1 = a*(p**3) + b*(p**2) + c*p + 1 s2 = b*(q**3) + c*(q**2) + 1*q + d if s1 == s2 and (p != q): print(f'{a}{b}{c}1, {b}{c}{1}{d}', s1, s2, p,q) [/pre2] Это решение выдает и ответ, но и числа большие. Либо условие непонятное, либо что

Ответов - 2

Поляков: 1) Вы не проверяете, что все цифры a, b, c, d различны. 2) Для того чтобы найти решение с максимальным p, переставьте первые два цикла.

Ж: [pre2] from itertools import * al = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] for p in range(58,-1,-1): #начинать надо с 99, но ответ уже был найден, поэтому стоит 58 для быстрого получения ответа for q in range(99,-1,-1): for (a,b,c,d) in product(al,repeat=4): if a not in [0] and b not in [0,a] and c not in [a,b] and d not in [a,b,c]: if (a*p**3+b*p**2+c*p+1)==(b*q**3+c*q**2+1*q+d): print(p, a*p**3+b*p**2+c*p+1); exit() [/pre2]



полная версия страницы