কম্পিউটার টিউটোরিয়াল

C++-এ ফারম্যাটের শেষ উপপাদ্য (Fermat's Last Theorem)

সংখ্যা তত্ত্বে ফারম্যাটের শেষ উপপাদ্যকে ফারম্যাটের অনুমান (Fermat's Conjecture)-ও বলা হয়। এটি একটি উপপাদ্য যা বলে যে ঘাত 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 + 144 = 169 = 132।

এই সমস্যায়, আমাদের তিনটি মান দেওয়া হয়েছে: L, R, pow যা রেঞ্জ [L, R] এবং ঘাত নির্দেশ করে। আমাদের কাজ হলো প্রদত্ত রেঞ্জ এবং ঘাতের জন্য ফারম্যাটের শেষ উপপাদ্য যাচাই করা।

উদাহরণ দিয়ে সমস্যাটি বোঝা যাক

উদাহরণ ১:

ইনপুট: L = 4, R = 12, power = 2

আউটপুট: 5, 12, 13

উদাহরণ ২:

ইনপুট: L = 4, R = 12, power = 4

আউটপুট: No such value found

সমাধানের পদ্ধতি

এখানে, আমরা চেক করব ঘাত ২-র চেয়ে বড় কিনা। যদি বড় হয়, তবে 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!
  1. C++ প্রোগ্রাম: ভিজিংয়ের থিওরেম বাস্তবায়ন

  2. C++ প্রোগ্রাম: ফার্মেটস লিটল থিওরেম বাস্তবায়ন

  3. C++ প্রোগ্রাম: 오일러 থিওরেম বাস্তবায়ন

  4. C++ প্রোগ্রাম: ফার্মাট মৌলিকতা পরীক্ষা বাস্তবায়ন