Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [35131514; 214164125] минимальное расстояние между числом, являющимся факториалом какого-то числа, и числом Фибоначчи. В ответе запишите эти два числа соответственно (сначала число, которое является факториалом, а затем, число, которое является чилос Фибоначчи) через пробел.
from math import factorial
fact = []#Список ,в котором будут факториалы числа
for i in range(20):
if factorial(i) >= 35131514 and factorial(i) <= 214164125:
fact += [factorial(i)]
fibo = [0,1]
while fibo[-1] < 214164125:
fibo += [fibo[-2]+fibo[-1]]
fibo = [x for x in fibo if x >= 35131514 and x <= 214164125] #Список, в котором будут только числа
# которые находятся в исследуемой области
ans = []
mn = 10**50
for first in fact:
for second in fibo:
if abs(first-second) < mn:
ans += [(first,second)]#Записываем числа в список,если их разница меньше mn
mn = abs(first-second) #Перезаписываем значение mn
print(ans)
Ответ: 39916800 39088169