今日の人気記事

  1. 閏年(うるうどし)を判定する
  2. 開発環境の構築
  3. 配列の数値の平均値を計算する
  4. 入力した文字がアルファベットか数字かを判定する
  5. コンパイルと実行 - GNU Compiler Collection(gcc) - Linux環境

入力した数値が完全数かどうかを判定する

当ページのリンクには広告が含まれています。

スポンサーリンク

入力した数値が完全数かどうかを判定するサンプルプログラムを紹介します。

完全数とは

完全数とは、ある数の約数の和(その数自信を除く)がある数に等しい自然数のことです。

一番有名な完全数は「6」です。

「6」の約数は {1,2,3,6}です。「6」を除いた約数の和は「6=1+2+3」なので、完全数ですね。

ちなみに「28」も完全数です。「28=1+2+4+7+14」

サンプルプログラム

それでは入力した数値が完全数かどうかを判定するプログラムをみてみましょう。

/*
 * C言語のサンプルプログラム - Webkaru
 * - 入力した数値が完全数かどうかを判定 -
 */
#include <stdio.h>

int main(void)
{

  int i, amari;

  /* 自然数 */
  int num;

  /* 和 */
  int sum = 0;

  /* 自然数を入力 */
  printf("自然数を入力してください = ");
  scanf("%d", &num);

  for( i=1; i<num; ++i) {
    if( (num % i) == 0)
      sum += i;
  }

  if( num == sum )
    printf("%d は完全数です!\n", num);
  else
    printf("%d は完全数ではありません!\n", num);

  return 0;
}

サンプルプログラムで使っている構文

実行結果

いくつかの実行結果です。

自然数を入力してください = 6
6 は完全数です!
自然数を入力してください = 28
28 は完全数です!
自然数を入力してください = 100
100 は完全数ではありません!

サンプルプログラム の人気記事

  1. 10進数を2進数に変換する
  2. 入力した自然数の階乗を計算する
  3. 入力した2つの数値の掛け算・割り算する
  4. 配列に格納した数値を昇順ソートする
  5. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)
  6. サンプルプログラム集
  7. フィボナッチ数の計算する
  8. 2次方程式の解を計算する
  9. 入力した文字がアルファベットか数字かを判定する
  10. 入力した文字列の文字数を表示する(出力)

関連記事(一部広告含む)