ทฤษฎีบทสุดท้ายของแฟร์มาต์ในทฤษฎีจำนวนเรียกอีกอย่างว่า การคาดเดาของแฟร์เมต์ เป็นทฤษฎีบทที่ระบุว่าสำหรับกำลัง n มากกว่า 2 ไม่มีค่าสามค่า a, b, c ตรงตาม -
ก 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<<"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!