以下是检查一个数字能否表示为幂的源代码,但为什么对于 n = 76 ** 89 - 1 和 n = 76 ** 89 会失败?如何解决这个错误?对于这两个n,它都给出 x=log(n,2)/log(i,2)=89.0。
以下是检查一个数字是否可以表示为幂的源代码,但是为什么对于 n = 76 ** 89 - 1 和 n = 76 ** 89 会失败呢?如何解决这个错误?对于这两个n,它们给出 x=log(n,2)/log(i,2)=89.0。
以下是检查一个数字是否可以表示为幂的源代码,但是为什么对于 n = 76 ** 89 - 1 和 n = 76 ** 89 会失败呢?如何解决这个错误?对于这两个n,它们给出 x=log(n,2)/log(i,2)=89.0。
from math import log,sqrt,floor
import sys
n= 76 ** 89 - 1
t=floor(sqrt(n))+1
flag=False
for i in range(2,t):
x=log(n,2)/log(i,2)
print(x)
if x-int(x)<sys.float_info.epsilon:
print("YESSSSSSSSSSSSS!")
flag=True
break
if not flag:
print("Nooooooooooooooooooo!")
76 ** 89 - 1
呢? - Jean-François Fabrei ** x
并查看是否与原始值匹配。 - Oliver Charlesworth