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

সি++-এ প্রথ নাম্বার (Proth Number) যাচাই করার প্রোগ্রাম


একটি সংখ্যা 'n' দেওয়া আছে। সংখ্যাটি প্রথ নাম্বার কিনা তা নির্ধারণ করতে হবে।

প্রথ নাম্বার কী?

প্রথ নাম্বারের সংজ্ঞা:

$$N = k \cdot 2^{n} + 1$$

যেখানে, n = ধনাত্মক পূর্ণসংখ্যা, k = বিজোড় ধনাত্মক পূর্ণসংখ্যা।

প্রথম কিছু প্রথ নাম্বার: 3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97...

ইনপুট

number: 17

আউটপুট

its a proth number

ইনপুট

number: 18

আউটপুট

its not a proth number

পদ্ধতি

  • সংখ্যা ইনপুট নিন।
  • ফর্মুলা প্রয়োগ করে প্রথ নাম্বার কিনা তা যাচাই করুন।
  • শর্ত পূরণ করলে "its a proth number", নাকি "its not a proth number"।

এলগরিদম

Step 1 → bool isPower(int num)  // 2^n কিনা তা চেক
    return (num && !(num & (num - 1)))

Step 2 → bool isProth(int num)
    int k = 1
    while (k < (num / k))
        if (num % k == 0)
            if (isPower(num / k)) return true
        k = k + 2
    return false

Step 3 → main()
    int num = 17
    if (isProth(num - 1)) print "its a proth number"
    else print "its not a proth number"

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

bool isPower(int num){
    return (num && !(num & (num - 1)));
}

bool isProth(int num){
    int k = 1;
    while (k < (num / k)){
        if (num % k == 0){
            if (isPower(num / k))
                return true;
        }
        k = k + 2;
    }
    return false;
}

int main(){
    int num = 17;
    if (isProth(num - 1))
        cout << "its a proth number";
    else
        cout << "its not a proth number";
    return 0;
}

আউটপুট

its a proth number

  1. C++-এ বাইনারি ট্রি হাইট-ব্যালেন্সড কিনা যাচাই করার প্রোগ্রাম

  2. C++ প্রোগ্রাম: গ্রাফ স্ট্রংলি কানেক্টেড কিনা যাচাই

  3. C++ প্রোগ্রাম: প্রাইম সংখ্যা (Prime Number) যাচাই

  4. জাভা প্রোগ্রাম: প্রাইম নাম্বার চেক করা