একটি পূর্ণসংখ্যা দেওয়া থাকলে, রিকারসিভ পদ্ধতিতে সেটি প্রাইম কিনা চেক করতে হবে।
২ থেকে Num/2 পর্যন্ত যেকোনো সংখ্যা যদি Num কে ভাগ করে দেয়, তবে নন-প্রাইম।
উদাহরণ
ইনপুট − Num = 32
আউটপুট − 32 is non-Prime!
ইনপুট − Num = 43
আউটপুট − 43 is a Prime number!
প্রোগ্রামে ব্যবহৃত পদ্ধতি
রিকারসিভ ফাংশন checkPrime(int num1, int index) ২ থেকে num1/2 পর্যন্ত চেক করে।
ইনপুট
Numনিন।যদি
num1 < 2হয়, ০ ফেরত দিন (নন-প্রাইম)।যদি
num1 == 2 || num1 == 3হয়, ১ ফেরত দিন (প্রাইম)।যদি
num1 % index == 0হয়, ০ ফেরত দিন।যদি
index <= num1/2হয়, ১ ফেরত দিন (প্রাইম)।অন্যথায়
checkPrime(num1, index+1)কল করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int checkPrime(int num1, int index){
if(num1 < 2){
return 0;
}
if (num1 == 2 || num1 == 3){
return 1;
}
if (num1 % index == 0){
return 0;
}
if (index <= num1/2){
return 1;
}
int result = checkPrime(num1, index+1);
return result;
}
int main(){
int Num = 31;
if (checkPrime(Num, 2) == 1){
cout << Num << " is a Prime number !";
}
else{
cout << Num << " is non Prime!";
}
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
31 is a Prime number!