संख्या सिद्धांत में फर्मेट का अंतिम प्रमेय जिसे फर्मेट का अनुमान भी कहा जाता है, एक प्रमेय है जो बताता है कि 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, power = 2
आउटपुट: 5, 12, 13
उदाहरण 2:
इनपुट: L = 4, R = 12, power = 4
आउटपुट: No such value found
समाधान दृष्टिकोण:
यहां, हम जांचेंगे कि घात 2 से अधिक है या नहीं। यदि यह अधिक है, तो No such value found प्रिंट करें।
अन्यथा सीमा में जांचें कि क्या कोई मान शर्त 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!