素數判斷 C語言實現

2021-10-25 08:46:03 字數 866 閱讀 6464

除了1和自身之外不能整除其它數, 稱之為素數. 最小的素數是2. 沒有最大的素數.

1000以內素數, 如下圖所示:

關於素數的演算法, 一般有2種.

第1種, 給出乙個數n(n >= 2), 判斷n是不是素數

第2種, 給出乙個數n(n >= 2), 把[2, n]的所有素數拿出來

判斷乙個數n是否是素數, 最簡單粗暴的方法就是把n分別與i(i的範圍是[2, n-1])求餘

稍微想一下我們就能知道, 只需判斷n與[2, n/2]求餘即可

再高階點利用數學上的證明, 可以得出, 只需判斷n與[2, sqrt(n)]求餘即可

c語言sqrt的原型是: double sqrt(double x)

下面的**展示了2個利用sqrt(n)就素數的演算法, 其中第2個演算法通過一些簡單的變換, 使

我們不必具體求出sqrt(n)的值, 就能判斷n是不是素數

#include #include int isprime1 (int n);

int isprime2 (int n);

int main ()

}return 0;

}// 判斷n是否是素數(利用庫函式sqrt(n))

// 返回值: 是返回1, 否返回0

int isprime1 (int n)

}return flag;

}// 判斷n是否是素數(不使用sqrt())

// 返回值: 是返回1, 否返回0

int isprime2 (int n)

i++;

}return flag;

}

C語言實驗 判斷素數(迴圈結構)

problem description 從鍵盤上輸入任意乙個正整數,然後判斷該數是否為素數。如果是素數則輸出 this is a prime.否則輸出 this is not a prime.input 輸入任意乙個正整數n 1 n 1000000 output 判斷n是否為素數,並輸出判斷結果 如...

C語言實驗 判斷素數(迴圈結構)

從鍵盤上輸入任意乙個正整數,然後判斷該數是否為素數。如果是素數則輸出 this is a prime.否則輸出 this is not a prime.輸入任意乙個正整數n 1 n 1000000 判斷n是否為素數,並輸出判斷結果 如果n是素數則輸出 this is a prime.否則輸出 thi...

C語言實驗 判斷素數(迴圈結構) OJ

time limit 1000ms memory limit 65536kb problem description 從鍵盤上輸入任意乙個正整數,然後判斷該數是否為素數。如果是素數則輸出 this is a prime.否則輸出 this is not a prime.input 輸入任意乙個正整數...