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

C++-এ ফারম্যাটের ছোট উপপাদ্য (Fermat's Little Theorem)

ফারম্যাটের ছোট উপপাদ্য (Fermat's Little Theorem) -

এই উপপাদ্য বলে যে যেকোনো প্রাইম নম্বর p এর জন্য,

          Ap - p হলো p-এর একটি গুণিতক (multiple)।

এই স্টেটমেন্টটি মডুলার অ্যারিথমেটিক-এ নিচের तरह প্রকাশ করা হয়:

          ap ≡ a (mod p)

যদি a p দ্বারা ভাগযোগ্য না হয়, তবে:

ap-1 ≡ 1 (mod p)

এই সমস্যায়, আমাদের দুটি সংখ্যা a এবং p দেওয়া হয়েছে। আমাদের কাজ হলো এই মানগুলোতে ফারম্যাটের ছোট উপপাদ্য যাচাই করা।

আমাদের চেক করতে হবে ap ≡ a (mod p) বা ap-1 ≡ 1 (mod p) প্রদত্ত a এবং p এর জন্য সত্য কিনা।

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

ইনপুট: a = 3, p = 7

আউটপুট: True

ব্যাখ্যা:

Ap-1 ≡ 1 (mod p)

=> 36 ≡ 729

=> 729 - 1 = 728

=> 728 / 7 = 104

উপপাদ্য কাজ করছে কিনা তা যাচাই করার প্রোগ্রাম:

#include <iostream>
#include <math.h>
using namespace std;

int fermatLittle(int a, int p) {
    int powVal;
    if (a % p == 0) {
        powVal = pow(a, p);
        if ((powVal - p) % p == 0) {
            cout << "Fermat's little theorem holds true!";
        } else {
            cout << "Fermat's little theorem holds false!";
        }
    } else {
        powVal = pow(a, (p - 1));
        if ((powVal - 1) % p == 0) {
            cout << "Fermat's little theorem holds true!";
        } else {
            cout << "Fermat's little theorem holds false!";
        }
    }
}

int main() {
    int a = 3, m = 11;
    fermatLittle(a, m);
    return 0;
}

আউটপুট

Fermat's little theorem holds true!
  1. C++ প্রোগ্রাম: ভিজিংয়ের থিওরেম বাস্তবায়ন

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

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

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