সংখ্যা তত্ত্বে ফার্মাটের শেষ উপপাদ্য যা Fermet’s conjecture নামেও পরিচিত একটি উপপাদ্য যা বলে যে 2 এর চেয়ে বেশি শক্তি n এর জন্য। কোন তিনটি মান 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] এবং power। আমাদের কাজ হল প্রদত্ত পরিসীমা এবং শক্তির জন্য ফার্ম্যাটের শেষ উপপাদ্য যাচাই করা৷
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
উদাহরণ 1:
ইনপুট: L =4, R =12, শক্তি =2
আউটপুট: 5, 12, 13
উদাহরণ 2:
ইনপুট: L =4, R =12, শক্তি =4
আউটপুট: এরকম কোন মান পাওয়া যায়নি
সমাধান পদ্ধতি:
এখানে, আমরা পরীক্ষা করব যে শক্তি 2-এর বেশি বা না। যদি এটি বড় হয়, প্রিন্ট করুন এমন কোন মান পাওয়া যায় নি।
অন্যথা 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!