Я пытаюсь создать программу, которая вычисляет числа Брауна или числа, которые могут быть выражены как n!+1 = m^2
где m - целое число, и выполнение этого через создает слишком большое число.Python: Коричневые числа и переполнение
Любая идея, как исправить это? (Существует также метод абацистского стиля, но он экспоненциально длиннее)
n = 40320
f = 9
while True:
x = (n+1)**(.5)
if isinstance(x, int):
break
else:
n = n*f
f = f+1
print(f)
print(n)
print(input(" "))
* n is 8!
Если я что-то не хватает, вы никогда не будете вычислять 'n!'. 'n' и' f' всегда увеличиваются –
8! = 40320, а факториал - 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1, так что 9 * 8! = 9! –
Правильно ... И в какой-то момент вы столкнетесь с ошибкой переполнения, независимо от любого предоставленного «исправления». Так в чем проблема? –