入力した数値が完全数かどうかを判定する
当ページのリンクには広告が含まれています。
スポンサーリンク
入力した数値が完全数かどうかを判定するサンプルプログラムを紹介します。
完全数とは
完全数とは、ある数の約数の和(その数自信を除く)がある数に等しい自然数のことです。
一番有名な完全数は「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 は完全数ではありません!