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

2つの整数の間のアームストロング数?


整数は、すべての桁が分離され、3乗されて合計される場合、n次のアームストロング数と呼ばれます。合計は数値と同じになります。つまり、abcd ... =a 3 + b 3 + c 3 + d 3 + ...

アームストロング数が3桁の場合、各桁の立方体の合計はその数自体に等しくなります。例:

153 =1 3 + 5 3 + 3 3 //153はアームストロング数です。

Input: Enter two numbers(intervals):999 9999
Output: Armstrong numbers between 999 and 9999 are: 1634 8208 9474

説明

1634 = 13+63+33+43
= 1+216+27+64
= 1634

以下に実装されているアプローチは単純です。指定された範囲内のすべての数値をトラバースします。すべての数値について、最初にその中の桁数を数えます。現在の数の桁数をnとします。それらは、すべての桁の3乗の合計を求めます。合計がIに等しい場合、数値を出力します。

#include <stdio.h>
#include <math.h>
int main() {
   int low = 100;
   int high = 400;
   printf("The amstrong numbers between %d and %d is \n",low,high);
   for (int i = low+1; i < high; ++i) {
      int x = i;
      int n = 0;
      while (x != 0) {
         x /= 10;
         ++n;
      }
      int pow_sum = 0;
      x = i;
      while (x != 0) {
         int digit = x % 10;
         pow_sum += pow(digit, n);
         x /= 10;
      }
      if (pow_sum == i)
         printf("%d ", i);
   }
   printf("\n");
   return 0;
}

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

    与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。 番号はヘンリー・デュードニーによって発見されました 。その数式 は- ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。 問題を理解するために例を見てみましょう 入力: N =17592 出力: いいえ 説明: 与えられた番号はダドニー番号ではありません。 ソリューションアプローチ- 解決策は、デュードニー番号の基本的な定義にあります。

  2. Pythonでアームストロング数を生成する方法は?

    3桁の数字は、その数字の3乗の合計が数字自体に等しいアームストロング数と呼ばれます。数値がこの条件を満たすかどうかを確認するために、数値の各桁が右から連続して分離され、その立方体が累積的に加算されます。結局、合計が元の数と等しいことがわかった場合、それはアームストロング数と呼ばれます。 例 次のPythonコードは、100から999までのすべてのナルシシスト数を出力します for num in range(100,1000):   temp=num   sum=0   while temp>0:     digit=temp%10 &nb