Python - 一个测试n∈{2,3,...,10}的等式a**n + b**n = c**n的函数

Jam*_*es -4 python

这不是一个功课问题,我可以向你保证.

我正在尝试编写一个测试相等性是否a**n + b**n = c**n 成立的函数

n∈{2,3,...,10}.如果存在等于n的值n,则函数应返回最低值,如a int.False如果相等不适用于给定范围内的任何n值,则该函数应返回.

例如

 print(f(3,4,5))
Run Code Online (Sandbox Code Playgroud)

输出:

2
Run Code Online (Sandbox Code Playgroud)

print(f(1,2,3))
Run Code Online (Sandbox Code Playgroud)

输出:

False
Run Code Online (Sandbox Code Playgroud)

我很想看到这个问题的不同方法.我向你保证这不是一个功课问题.提前致谢 :)

Jun*_*sor 6

由于安德鲁·威尔斯(Andrew Wiles)解决了费马的最后一个定理并且证明了n > 2没有整数解,因此这很容易a ** n + b ** n == c ** n

def f(a, b, c):
    return 2 if a * a + b * b == c * c else False
Run Code Online (Sandbox Code Playgroud)