2以上の自然数において、その自然数が1とその自然数自身の他に約数が存在しない場合、その自然数は素数とも呼ばれます。素数か判定するには、数が大きくなるほど手計算では大変ですが、コンピューターにまかせれば、あっという間に判定できます。ただし、膨大な桁数の素数となると、コンピューターでも、その判定にかなり時間がかかってしまいます。
素数かどうか判定するには、まず、入力された自然数を、実際に2から、自然数より1小さい値まで割ってみて、割り切れるのかどうか調べます。
(2の場合は、割らずに素数と判定します。)もし、割り切れる事が起きれば(余りが0となる)、その自然数は素数ではありません。
入力された自然数が素数か判定する
素数の条件を踏まえて処理させる
プログラムソース
以下は、入力された自然数が素数かどうか判定するプログラムソースコード例です。
#include <stdio.h>
int main(void)
{
int i; /* ループ処理用変数 */
int flg; /* 素数判定に使用(0なら素数) */
int num; /* 入力された自然数を格納 */
flg = 0; /* 0と初期化しておく */
/* キーボードからの入力処理 */
printf("素数判定をしたい自然数(2以上)を入力して下さい。\n");
scanf("%d", &num);
/* numを2からnum-1の整数で割り、約数が存在しないか調べるループ処理 */
for(i = 2 ; i < num ; i++)
{
/* 1とnum自身の他に約数が存在したら素数と判定する処理 */
if(num % i == 0)
{
flg = 1; /* 素数ではないと判定されたので1を代入 */
}
}
/* flg値が0なら素数である旨を表示 */
if(flg == 0)
{
printf("入力された自然数 %d は、素数です。\n", num);
}
else
{
printf("入力された自然数 %d は、素数ではありません。\n", num);
}
return 0;
}
数値計算実行結果
上記のプログラムをコンパイルし実行すると、
自然数の入力が求められます。入力すると、その数が素数かどうか判定され、結果が表示されます。
素数判定をしたい自然数(2以上)を入力して下さい。 7 入力された自然数 7 は、素数です。
2009/04/25 更新
