C語言求素數的簡化演算法

2021-10-04 20:27:32 字數 523 閱讀 1168

函式的呼叫、結構化思想、演算法優化

演算法解釋:

1.除了2以外所有2的倍數都不是素數

2.如果num能被2~num-1之間任意乙個整數整除,它的兩個因子一定有乙個小於等於根號num,另乙個大於等於根號num,所以當根號num之前沒有找到因數,在它之後也不會有因數

#include

#include

intisprime

(int x)

//本函式功能是判斷某個數是否為素數

}return prime;

}//該函式在c99中可以使用bool型別定義,加入stdbool.h標頭檔案即可,輸出true/false

void

out(

int n)

//本函式功能是把2到n之間所有的素數輸出

C語言 求素數 排序演算法

一 素數 1.從2到n 1之間依次檢查是否有n的因數 題目 判斷乙個數是否是素數 bool isprimer int n return true int main else return 0 2.篩選法求1到n之間的素數 使用陣列標記 題目 用篩選法求100之內的素數 define n 100 vo...

C語言判斷素數(求素數)

素數又稱質數。所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2 16 的任一整數整除。思路1 因此判斷乙個整數m是否是素數,只需把 m 被 2 m 1 之間的每乙個整數去除,如果都不能被整除,那麼 m 就是乙個素數。思路2 判斷方法還可以簡化。m 不必被...

簡化求質數演算法

前幾天做了個求質數題,這兩天瀏覽演算法題庫,偶然看到了原題以及程式分析 判斷素數的方法 用乙個數分別去除2到sqrt 這個數 如果能被整除,則為素數。這樣一來不用除到自身了都,顯然更簡單,同時還要對之前的方法進行點小修改,將記錄是否為質數的boolean變數都去掉,哈哈,是不是很激動的想知道答案?話...