费马数理中的最后一个定理(也称为费米猜想) 是一个定理,指出对于n大于2的幂,没有三个值a,b,c满足-
a n + b n = c n
即 如果n <= 2,则 a n + b n = c n
否则, a n + b n != c n
n = 2的值的示例
3,4,5 => 3 2 + 4 2 = 9 + 16 = 25 = 5 2。
5、12、13 => 25 + 49 = 169 = 13 2。
在这个问题中,我们给了三个值L,R,pow,表示范围[L,R]和功率。我们的任务是验证给定范围和功率下的费马最后定理。
让我们举个例子来了解这个问题,
范例1:
输入: L = 4,R = 12,功率= 2
输出: 5、12、13
范例2:
输入: L = 4,R = 12,功率= 4
输出: 找不到这样的值
解决方法:
在这里,我们将检查功率是否大于2。如果更大,请打印“找不到此类值”。
否则,检查极限是否存在满足条件a n + b n = c n的值。
#include <iostream> #include <math.h> using namespace std; void checkFermatsLastTh(int L, int R, int n) { if (n >= 3) cout<<"找不到示例!"; else { for (int a = L; a <= R; a++) for (int b=a; b<=R; b++) { int sum = pow(a, n) + pow(b, n); double c = pow(sum, 1.0/n); int cpowN = pow((int)c, n); if (cpowN == sum) { cout<<"找到带有值的示例: "<<a<<", "<<b<<", "<<c; return; } } cout << "找不到示例!"; } } int main() { int L = 3, R = 15, power = 2; cout<<"Run 1 \n"; checkFermatsLastTh(L, R, power); L = 5, R = 42; power = 5; cout<<"\n\nRun 2\n"; checkFermatsLastTh(L, R, power); return 0; }
Run 1 找到带有值的示例: 3, 4, 5 Run 2 找不到示例!