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

C++でのデュードニー番号


与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。

番号はヘンリー・デュードニーによって発見されました 。その数式 は-

C++でのデュードニー番号

ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。

問題を理解するために例を見てみましょう

入力: N =17592

出力: いいえ

説明:

与えられた番号はダドニー番号ではありません。

ソリューションアプローチ-

解決策は、デュードニー番号の基本的な定義にあります。 数値は、数値の立方根がその桁の合計に等しいという事実に基づくデュードニー数値

アルゴリズム-

ステップ1: nが完全な立方体であるかどうかを確認します。

ステップ2.1: はいの場合、nの立方根=nの桁の合計かどうかを確認します。

ステップ2.2.1: はいの場合、番号はデュードニー番号です。

ステップ2.2.2: NOの場合、その番号はDudeney番号ではありません。

ステップ2.2: いいえの場合、その番号はデュードニー番号ではありません。

アルゴリズムの動作を説明するC++プログラム-

#include <bits/stdc++.h>
using namespace std;

int calcDigitSum(int n){

   int digitSum = 0;
   int digitVal;
   while (n > 0) {
      digitVal = n % 10;
      digitSum += digitVal;
      n /= 10;
   }
   return digitSum;
   
}
int checkDudeney(int N) {
   
   int cubeRoot = int( round( cbrt(N) ) );
   
   if(pow(cubeRoot, 3.0) != N){
      return 0;
   }

   int sumOfDigit = calcDigitSum(N);
   
   if (cubeRoot != sumOfDigit)
      return 0;

   return 1;
}

int main() {
   int N = 104323;
   cout<<"The number "<<N;
   if (checkDudeney(N))
      cout<<" is a dudeney number.";
   else
      cout<<" is not a dudeney number.";
   return 0;
}

出力-

The number 104323 is not a dudeney number.

  1. C++での質素な数

    この問題では、正の整数Nが与えられます。私たちのタスクは、与えられた数が質素な数であるかどうかをチェックするプログラムを作成することです。 不正な番号 −指定された数の素因数分解の桁数よりも厳密に桁数が多い数。 例 − 625、数625の素因数は5 4です。 。 625の桁数は3です。 5 4の桁数 は2です。 3は厳密に2より大きくなります。したがって、625は質素な数です。 最初のいくつかの質素な数は − 125、128、243、256、343、512、625など。 問題を理解するために例を見てみましょう Input: n = 128 Output: Frugal n

  2. C++五胞体数

    五胞体数は、パスカルの三角形の5番目の数として表されます。ご存知のように、これは5番目の数字です。つまり、パスカルの三角形に少なくとも5つの数字が必要です。したがって、このシリーズの最初の数字は 1 4 6 4 1から始まります。 パスカルの三角形の4行目。したがって、このチュートリアルでは、たとえば、n番目の五胞体数を見つける必要があります Input : 1 Output : 1 Input : 4 Output : 35 次の図から出力を確認できます- この問題については、可能な限り、これは一種のシリーズであるため、ソリューションでこのシリーズのパターンを見つけようと