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; }
-
C++でのデュードニー番号
与えられた数の底の数理論で定義された数は、最初の自然数の桁の合計が2番目の数の桁の合計に等しくなるように、別の自然数の完全な3乗に等しい自然数です。 (ウィキペディア)。 番号はヘンリー・デュードニーによって発見されました 。その数式 は- ここでは、整数nが与えられます。私たちの仕事は、与えられた番号nが人物番号であるかどうかを確認することです。 問題を理解するために例を見てみましょう 入力: N =17592 出力: いいえ 説明: 与えられた番号はダドニー番号ではありません。 ソリューションアプローチ- 解決策は、デュードニー番号の基本的な定義にあります。
-
Pythonでアームストロング数を生成する方法は?
3桁の数字は、その数字の3乗の合計が数字自体に等しいアームストロング数と呼ばれます。数値がこの条件を満たすかどうかを確認するために、数値の各桁が右から連続して分離され、その立方体が累積的に加算されます。結局、合計が元の数と等しいことがわかった場合、それはアームストロング数と呼ばれます。 例 次のPythonコードは、100から999までのすべてのナルシシスト数を出力します for num in range(100,1000): temp=num sum=0 while temp>0: digit=temp%10 &nb