C#で入力した数値がアームストロング数かどうかを判定するプログラムの作成方法
アームストロング数(Armstrong Number)とは、各桁の数字を3乗した値の合計が、元の数値そのものと等しくなる数のことです。
例えば「153」の場合、1³ + 5³ + 3³ = 1 + 125 + 27 = 153 となり、合計が元の数値と一致するため、アームストロング数であると判定できます。
アームストロング数の判定ロジック
判定の手順は以下の通りです。
まず、数値を10で割った余りを求めることで、最下位の桁(1の位)を取り出します。そして、その余りを3乗して合計に加算していきます。
rem = i % 10; sum = sum + rem*rem*rem;
次に、数値を10で割ることで桁を一つずつずらしながらループ処理を繰り返します。すべての桁の処理が終わった後、合計値が元の数値と一致しているかどうかを確認します。
if (sum == num) {
Console.Write("Armstrong Number!");
}一致していればアームストロング数、一致していなければアームストロング数ではないと出力します。
C#での実装例
以下は、数値「153」がアームストロング数かどうかを判定するC#のサンプルコードです。
int num, rem, sum = 0;
// アームストロング数の判定
num = 153;
for (int i = num; i > 0; i = i / 10) {
rem = i % 10;
sum = sum + rem*rem*rem;
}
if (sum == num) {
Console.Write("Armstrong Number!");
}
else
Console.Write("Not an Armstrong Number!");
Console.ReadLine();コードの解説
このプログラムでは、変数 num に判定対象の数値を代入し、forループ内で以下の処理を繰り返します。
- i % 10:現在の最下位桁を取り出す
- rem*rem*rem:取り出した桁を3乗する
- i = i / 10:整数除算により桁を一つずらす
ループが終了した時点で sum には各桁の3乗の合計が格納されています。sum と num を比較し、一致すれば「Armstrong Number!」、一致しなければ「Not an Armstrong Number!」とコンソールに出力されます。
この方法を使えば、任意の3桁の整数がアームストロング数であるかどうかを簡単に判定できます。
-
指定した数値がハッピー数かどうかを判定するPythonプログラム
特定の数値がハッピー数(Happy Number)であるかどうかを判定するには、「%」演算子(剰余)、「//」演算子(整数除算)、そして「+」演算子を組み合わせて使用します。 ハッピー数とは、各桁の数字を2乗して合計し、その結果に対して同じ操作を繰り返したとき、最終的に1に到達する数値のことです。1に到達しない数値は、4と5などの循環に入り込み、永遠に1になることはありません。 以下に具体的な実装例を示します。 サンプルコード def check_happy_num(my_num): remaining = sum_val = 0 while(my_num > 0):
-
Pythonでアームストロング数を判定するプログラムの書き方
この記事では、与えられた整数が「アームストロング数(Armstrong number)」であるかどうかを判定するための考え方と、Pythonによる具体的な実装方法を解説します。 問題の定義 整数 n が与えられたとき、その整数がアームストロング数であるかどうかを判定することを目標とします。 アームストロング数とは? n 桁の正の整数 abcd… が次の条件を満たすとき、この数は「n 次(オーダー n)のアームストロング数」と呼ばれます。 abcd... = a^n + b^n + c^n + d^n + … つまり、各桁の数字を「桁数乗」した値の総和が、元の数と一致するかを確認す