C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での素数の再帰プログラム


入力として整数が与えられます。目標は、再帰を使用して、入力数Numが素数であるか非素数であるかを見つけることです。

数が素数であるかどうかを確認するには、i=2からi<=Num/2までのトラバースを開始します。いずれかのiがNumで完全に割り切れる場合、素数は1とその数自体でしか割り切れないため、その数は素数ではありません。

入力 −数値=32

出力 − 32は非プライムです!

説明 − i=2からi<=32/2までトラバースを開始すると、最初は2で完全に割り切れ、非素数であることを示します。

入力 −数値=43

出力 − 43は素数です!

説明 − i=2からi<=43/2までトラバースを開始すると、2から21までの数値で割り切れなくなります。これは素数であることを示しています。

以下のプログラムで使用されているアプローチは次のとおりです

このアプローチでは、入力番号を受け取る再帰関数checkPrime(int num1、int index)と、2からnum1/2までの値をとるインデックスを使用しています。

基本ケースの場合-:num1 <2の場合、プライムではないため1を返します。

num1 ==2の場合、素数であるため2を返します。

それ以外の場合:-if(index <=num1 / 2)の場合、インデックスがnum1を完全に分割しないポイントに到達したため、素数でのみ可能であるため1を返します。それ以外の場合は、result =checkPrime(num1、index+1を使用して次のインデックスに戻ります。 )

  • 入力番号Numを取ります

  • 関数checkPrime(int num1、int index)は入力を受け取り、数値が素数の場合は1を返し、それ以外の場合は0を返します。

  • num1 <2の場合、2未満の数値は素数ではないため、0を返します。

  • num1が2または3の場合、1を返します。2と3は素数です。

  • num1%indexが<=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++での10進数から16進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を16進数に変換することです。 コンピューターの16進数は16を底とし、10進数は10を底とし、0〜9の値で表されますが、16進数は0〜15から始まる数字で、10はA、11はB、12はC、 Dとして13、Eとして14、Fとして15。 10進数を16進数に変換するには、指定された手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 6789を16を底とする16進数に変換し、商を取得して格納する必要があるため、6789を16で除算します。余りが0〜9の場合はそのまま保存し、余りが10〜15の場合は、文字形式でA-

  2. C++での10進数から2進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を2進数に変換することです。 コンピューターの10進数は10進数で表され、2進数は2進数の0と1の2つしかないため、2進数で表されますが、10進数は0〜9から始まる任意の数値にすることができます。 10進数を2進数に変換するには、次の手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 42を2を底とする2進数に変換し、商を取得して格納する必要があるため、42を2で除算します。余りが0の場合、ビットを0として格納します。それ以外の場合は1です。 取得した商を2進数の基数である2で除算し、ビットを格納し続けます