কম্পিউটার

C++ এ মৌলিক সংখ্যার জন্য রিকার্সিভ প্রোগ্রাম


আমরা ইনপুট হিসাবে একটি পূর্ণসংখ্যা দেওয়া হয়. লক্ষ্য হল পুনরাবৃত্ত ব্যবহার করে ইনপুট সংখ্যাটি প্রাইম বা নন-প্রাইম কিনা তা খুঁজে বের করা।

একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করতে, i=2 থেকে i<=Num/2 এ যাত্রা শুরু করুন। যদি কোনো i সংখ্যা দ্বারা সম্পূর্ণরূপে বিভাজ্য হয় তবে সংখ্যাটি অ-প্রাথম কারণ মৌলিক সংখ্যাগুলি শুধুমাত্র 1 দ্বারা বিভাজ্য এবং সংখ্যাটি নিজেই৷

উদাহরণ

ইনপুট − সংখ্যা =32

আউটপুট − 32 হল নন-প্রাইম!

ব্যাখ্যা − যদি আমরা i=2 থেকে i<=32/2 তে যাত্রা শুরু করি, তাহলে প্রথমে এটি 2 দ্বারা সম্পূর্ণরূপে বিভাজ্য হবে যা বলে যে এটি অ-প্রধান।

ইনপুট − সংখ্যা =43

আউটপুট − 43 একটি মৌলিক সংখ্যা!

ব্যাখ্যা − যদি আমরা i=2 থেকে i<=43/2 এ যাত্রা শুরু করি, তাহলে এটি 2 থেকে 21 এর মধ্যে কোনো সংখ্যা দিয়ে বিভাজ্য হবে না। যা বলে যে এটি মৌলিক।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

এই পদ্ধতিতে আমরা রিকার্সিভ ফাংশন চেকপ্রাইম (int num1, int index) ব্যবহার করছি যা ইনপুট নম্বর এবং সূচক নেয় যা 2 থেকে num1/2 পর্যন্ত মান গ্রহণ করবে।

বেস কেস-এর জন্য-:যদি num1<2 1 রিটার্ন করে কারণ এটি অ-প্রাইম।

যদি num1==2 2 রিটার্ন করে তাহলে এটা প্রাইম।

অন্যথায়:- if(index<=num1/2) তাহলে আমরা সেই বিন্দুতে পৌঁছেছি যেখানে কোনো সূচক সম্পূর্ণভাবে num1 ভাগ করেনি তাই 1 ফেরত দিন কারণ এটি শুধুমাত্র মৌলিক সংখ্যার জন্য সম্ভব। অন্যথায় ফলাফল=checkPrime(num1, index+1) ব্যবহার করে পরবর্তী সূচকের জন্য পুনরাবৃত্তি করুন )

  • ইনপুট নম্বর Num নিন

  • ফাংশন চেকপ্রাইম(int num1,int index) ইনপুট নেয় এবং সংখ্যা প্রাইম হলে 1 প্রদান করে অন্যথায় 0 প্রদান করে।

  • যদি num1<2 0 দেয় তাহলে 2 এর কম সংখ্যা অ-প্রাইম।

  • সংখ্যা 1 2 বা 3 হলে, 2 এবং 3 মৌলিক সংখ্যা হিসাবে 1 ফেরত দিন।

  • যদি num1% সূচক <=num1/2 হয় তাহলে 1 ফেরত দিন num1/2 পর্যন্ত কোন সংখ্যা সম্পূর্ণরূপে বিভক্ত num1 তাই num1 প্রাইম হয়

  • result=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!

  1. C++ এ কেন্দ্রীভূত অনাভুজ সংখ্যার জন্য প্রোগ্রাম

  2. হেক্সাডেসিমেল থেকে দশমিকের জন্য C++ প্রোগ্রাম

  3. C++ এ দশমিক থেকে হেক্সাডেসিমেল রূপান্তরের জন্য প্রোগ্রাম

  4. C++ এ দশমিক থেকে বাইনারি রূপান্তরের জন্য প্রোগ্রাম