我正在尝试在python3中编写一个简短的脚本来测试Fermat的最后一个定理。虽然我可以测试单个集合,但我很好奇如何测试“全部”或一次大量的数字。我不确定如何解决这个问题,所以我尝试过的代码示例很少。
我如何为A B和C生成大于2的所有可能的数字排列?我下面的方法的第一个问题是32位系统上的列表似乎仅限于500万个项目。
def fermat(a, b, c, n):
return a**n + b**n == c**n
def test_fermat():
alist, blist, clist, nlist = [a for a in range(2, 5000000000)], [b for b in range(2, 5000000000)], [c for c in range(2, 5000000000)], [n for n in range(2, 5000000000)]
mixed = itertools.product(alist,blist,clist,nlist)
for item in mixed:
a,b,c,n = item[0], item[1], item[2], item[3]
print(a,b,c,n)
fermat(a,b,c,n)