今日の人気記事

  1. 数値の桁揃え
  2. 関数のプロトタイプ宣言
  3. MinGW - gcc の環境設定(パスを通す) - Windows環境
  4. 入力した行列の積(掛け算)を計算する

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

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

スポンサーリンク

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

完全数とは

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

一番有名な完全数は「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. サンプルプログラム集
  2. 入力した2つの数値を交換する
  3. 入力した2つの自然数の最大公約数を求める
  4. 10進数を2進数に変換する
  5. 配列に格納した数値を昇順ソートする
  6. 入力した文字列をASCIIコードに変換・出力
  7. 入力した数値が完全数かどうかを判定する
  8. 2進数を10進数に変換する
  9. 1から1000までの完全数を表示する
  10. 配列に格納した数値を降順ソートする

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