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

アームストロング数(Armstrong Number)とは?Cプログラムで判定方法を解説

「アームストロング数(Armstrong Number)」とは、各桁の数字を3乗し、その合計が元の数値と一致するような数のことです。これは数学的な概念であり、プログラミング初心者が基本的なロジック構築力を身につけるための定番の演習題材としてよく使われます。

入力:370
出力:370 はアームストロング数です

仕組みの解説

例として 370 を見てみましょう。この数の各桁は「3」「7」「0」であり、それぞれを3乗して足し合わせると次のようになります。

370 = 3×3×3 + 7×7×7 + 0×0×0
  = 27 + 343 + 0
  = 370

計算結果が元の数値 370 と一致しているため、370 はアームストロング数であると判定できます。ほかにも 153、371、407 などがアームストロング数の代表例として知られています。

Cプログラムの実装例

以下は、ユーザーから入力された整数がアームストロング数かどうかを判定するC言語のサンプルコードです。

#include <stdio.h>

int main(void) {
    int n, num, digit, sum = 0;

    scanf("%d", &n);
    num = n;

    while (num != 0) {
        digit = num % 10;  /* 最下位の桁を取り出す */
        sum += digit * digit * digit;  /* 3乗して加算 */
        num /= 10;  /* 桁を1つ右へずらす */
    }

    if (sum == n)
        printf("%d is an Armstrong number.\n", n);
    else
        printf("%d is not an Armstrong number.\n", n);

    return 0;
}

処理の流れ

  1. 入力された数値を変数 n に格納し、作業用コピーを num に保存します。
  2. ループ内で num % 10 を使って最下位の桁を1桁ずつ取り出します。
  3. 取り出した桁を3乗し、変数 sum に加算していきます。
  4. num /= 10 で数値を1桁ずつ縮小し、これをすべての桁に対して繰り返します。
  5. 最後に sum と元の数値 n を比較し、一致すればアームストロング数と判定します。

このように、剰余演算(%)と整数除算(/)を組み合わせることで桁ごとの処理を実現でき、ループと条件分岐の基礎を学ぶのに最適な演習となっています。

  1. Pythonで素数を判定するプログラムの書き方を徹底解説

    はじめに この記事では、「与えられた数値が素数かどうかを判定する」という問題に対する解決策を、Pythonのコード例とともにわかりやすく解説します。 問題の概要 問題設定:ある数値が与えられたとき、その数が素数であるかどうかを判定するプログラムを作成します。 まず「素数」の定義をおさらいしましょう。1より大きい正の整数のうち、1とその数自身以外に約数を持たない数を素数(そすう)と呼びます。たとえば、2、3、5、7などはそれ以外の約数を持たないため、素数です。 プログラムの考え方 今回作成するプログラムでは、入力された数値が素数かどうかを以下の手順で判定します。 1以下の数値は素数ではない

  2. Pythonでアームストロング数を判定するプログラムの書き方

    この記事では、与えられた整数が「アームストロング数(Armstrong number)」であるかどうかを判定するための考え方と、Pythonによる具体的な実装方法を解説します。 問題の定義 整数 n が与えられたとき、その整数がアームストロング数であるかどうかを判定することを目標とします。 アームストロング数とは? n 桁の正の整数 abcd… が次の条件を満たすとき、この数は「n 次(オーダー n)のアームストロング数」と呼ばれます。 abcd... = a^n + b^n + c^n + d^n + … つまり、各桁の数字を「桁数乗」した値の総和が、元の数と一致するかを確認す