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

数値の桁の再帰的な合計は、C++では素数またはnoです


入力として整数変数番号が与えられます。目標は、入力された数値の桁の合計を計算し、その合計が素数であるかどうかを確認することです。得られた桁数の合計が1桁になるまでこれを行います。その数が素数であるかどうかを確認してください。入力数が123の場合、桁の合計は1 + 2 + 3 =6になります。これは素数ではなく、6は1桁の数です。

このためのさまざまな入出力シナリオを見てみましょう

入力 −番号=12341

出力 −数値の桁の再帰的な合計はPRIME

説明

1 + 2 + 3 + 4 + 1 =11

1 + 1 =2

2は素数です。

入力 −番号=1664

出力 −数値の桁の再帰的な合計は素数ではありません

説明

1 + 6 + 6 + 4 =17

1 + 7 =8

8は非素数です。

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

  • 整数変数を数値として宣言します。

  • データをRecursively_Prime(number)

    として関数に渡します
  • Recursively_Prime(number)

    としての関数内
    • 関数の呼び出しにnumberをsum(number)として設定します。

    • 数字が3であるか、数字が3であるか、数字が5であるか、数字が7であるかを確認してから、PRIMEを印刷します。

    • それ以外の場合は、NOTPRIMEを印刷します。

  • 関数sum(int number)の内部

    • IF番号が0であることを確認してから、0を返します。

    • ELSE、IF番号%9が0)の場合、9を返します。

    • ELSE、番号%9。

  • 結果を印刷します。

#include<iostream>
using namespace std;
int sum(int number){
   if(number == 0){
      return 0;
   }
   else{
      if(number % 9 == 0){
         return 9;
      }
      else{
         return number % 9;
      }
   }
}
void Recursively_Prime(int number){
   number = sum(number);
   cout<<"Recursive sum of digits of a number is ";
   if(number == 2 || number == 3 || number == 5 || number == 7){
      cout << "PRIME";
   }
   else{
      cout << "NOT PRIME";
   }
}
int main(){
   int number = 5555;
   Recursively_Prime(number);
}

出力

上記のコードを実行すると、次の出力が生成されます

Recursive sum of digits of a number is PRIME

  1. 数値がC++でフルプライムであるかどうかを確認します

    ここでは、数値が完全素数であるかどうかを確認する方法を説明します。数が素数であり、そのすべての桁も素数である場合、その数は完全な素数であると言われます。数が37であるとすると、これは完全な素数です。しかし、9は素数ではないため、97は完全な素数ではありません。 効率的なアプローチの1つはそれです。まず、素数ではない数字が存在するかどうかを確認する必要があります。数字は0から9でなければなりません。その範囲では、2、3、5、および7が素数であり、その他は素数ではありません。すべてが素数の場合は、その数が素数であるかどうかを確認します。 例 #include <iostream> u

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;