একটি সংখ্যা '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
প্রদত্ত প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
শর্তটি পরীক্ষা করতে নম্বরটি ইনপুট করুন
-
প্রদত্ত সূত্রটি পরীক্ষা করার জন্য প্রয়োগ করুন এটি একটি প্রথ নম্বর কিনা
-
শর্তটি সত্য ধারণ করলে এটি একটি প্রথ নম্বর
-
যদি শর্তটি সত্য প্রিন্ট না রাখে তবে এটি একটি প্রথ নম্বর নয়
অ্যালগরিদম
Step 1→ declare function to calculate power of 2 bool isPower(int num) return (num && !(num & (num - 1))) Step 2→ Declare function to check if a number is a proth number or not bool isProth(int num) declare int k = 1 While (k < (num / k)) IF (num % k == 0) IF (isPower(num / k)) return true End Set k = k + 2 End End return false Step 3→ In main() Declare int num = 17 IF (isProth(num - 1)) Print "its a proth number" End Else Print "its not a proth number" End
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
//function to calculate power of 2
bool isPower(int num){
return (num && !(num & (num - 1)));
}
//function to check if a number is a proth number
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