C++ 中的費馬大定理
數論中的費馬大定理又稱費馬猜想 ,是一個定理,內容為對於大於 2 的 n 次冪。不存在三個值 a、b、c 滿足 −
an + bn = cn
即 如果 n <= 2, an + bn = cn
否則, an + bn != cn
n = 2 的值示例,
3、4、5 => 32 + 42 = 9 + 16 = 25 = 52。
5, 12, 13 => 25 + 49 = 169 = 132.
在這個問題中,我們給定三個值,L、R、pow,表示範圍 [L, R] 和冪。我們的任務是驗證給定範圍和冪的費馬大定理。
我們舉個例子來理解這個問題,
示例 1:
輸入: L = 4,R = 12,冪 = 2
輸出: 5, 12, 13
示例 2:
輸入: L = 4,R = 12,冪 = 4
輸出: 未找到此類值
解決方案方法:
在此,我們將檢查冪是否大於 2。如果大於,則列印未找到此類值。
否則,在限制條件內檢查是否有值滿足條件 an + bn = cn。
說明我們解決方案工作原理的程式,
示例
#include <iostream>
#include <math.h>
using namespace std;
void checkFermatsLastTh(int L, int R, int n) {
if (n >= 3)
cout<<"No example found!";
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<<"Example found with value : "<<a<<", "<<b<<", "<<c;
return;
}
}
cout << "No example found!";
}
}
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 Example found with value : 3, 4, 5 Run 2 No example found!
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP