1. 程式人生 > >C語言實現質數的判斷

C語言實現質數的判斷

/*
 * 檔名:質數判斷.c
 * 功能描述:判斷一個數是否為質數
 * 編輯人:王廷雲
 * 編輯時間:2017-1-10
*/
#include <stdio.h>

int main(void)
{
    int num;

    fprintf(stdout, "請輸入一個正整數:");

    /* 獲取並檢查使用者輸入 */
    while (1)
    {
        if (fscanf(stdin, "%d", &num) != 1)  // 檢查輸入是否為整數
    	{
    	    fprintf(stderr, "輸入錯誤!請重新輸入:")
; while (getchar() != '\n'); // 去掉多餘的非法字元 continue; } else if (num <= 0) // 檢查輸入是否為正數 { fprintf(stderr, "請輸入錯誤!請輸入正整數:"); continue; } else break; } /* 質數判斷 * 質數:只能被1和本身整除,最小質數為2 */ #if 1 /* 方法一:定義法 */
int i; for (i = 2; i < num; i++) { if (num % i == 0) { break; } } if (i == num) // 除了1以外只有自己能整除自己 fprintf(stdout, "整數%d為質數\n", num); else fprintf(stdout, "整數%d不是質數\n", num); #else /* 方法二:計數法 */ int i; int count = 0; for (
i = 1; i <= num; i++) { if (num % i == 0) { count++; // 統計能夠整除自己的個數 } } if (count == 2) // 只有1和自己兩個數可以整除自己 fprintf(stdout, "整數%d為質數\n", num); else fprintf(stdout, "整數%d不是質數\n", num); #endif return 0; }