1樓:難得當歌對酒時
應當是素數判定演算法,也即判斷一個數是不是素數。
常見的演算法有:
1,暴力法,用2~sqrt(n)之間的所有整數依次試除n,這種方法時間開銷很大。
2,篩法。這種方法空間開銷很大。
3,rabin-miller演算法,這種方法在一定情況下會誤判。
4,aks 演算法,多項式時間內判定
2樓:昔俊能
素數即只能被1和其本身整除的數,演算法判斷n是否為素數只需用2~n/2之間的數去除就可以了。因為一個數的一半的平方大於其本身是從5開始的,解方程:n/2的平方》n 。
即一個數n的兩個因數不能同時比n/2大。就可以說一個數若不是素數則一定在2~n/2之間有因數。而且2,3也是符合下面程式的。
素數(又稱質數):就是除了1和它本身,沒有其他因子的整數。注:1不是素數。
c語言**演算法:
#include
main()}}
3樓:匿名使用者
素數演算法是素數判定演算法,也即判斷一個數是不是素數。
質數(prime number)又稱素數,有無限個。一個大於1的自然數,除了1和它本身外,不能被其他自然數(質數)整除,換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。
根據算術基本定理,每一個比1大的整數,要麼本身是一個質數,要麼可以寫成一系列質數的乘積;而且如果不考慮這些質數在乘積中的順序,那麼寫出來的形式是唯一的。最小的質數是2。
新手求教 c語言素數判斷演算法
4樓:匿名使用者
就是判斷從2開始到一個數的平方根中若不能被他整除,那麼該數就是素數;
網上**是若能整除則跳出,所有條件不能整除則輸出是素數。
他是只需要一種判斷,不滿足則跳出,那麼跳出後i < n,所以可以用。
你的**思路沒有錯,只不過網上沒有使用的優化的演算法,如果你想弄明白怎麼優化,那你需要在數學中找答案
5樓:獅子
網上的**意思是:n就是你輸入的任意數,判斷它是否是素數的方法是用大於2小於n的數去除n,若能整除即不是素數,跳出迴圈;若數一直增加到n+1都沒有被整除,即可輸出「素數」。
你的源程式:3是素數,很簡單,所以用if來提醒輸入大於3的數,你的只是另一種素數演算法,是優化的演算法,更快。因為只需用2到根號a去判斷。
6樓:去塵遠
第一個if:如果輸入的數n,能夠整除小於n的某一個數i,證明數n有約數i,此時break後,i的值一定是小於n的。
第二個if:如果i的值比n大,說明上述的for迴圈沒有進入到第一個if裡面,所以從2到n-1之間沒有一個數是n的約數。所以可以判定n是素數。
7樓:湛藍星空
//判斷一個數num是否為素數
#include
int main()
int num,i,n=0;
while(1)
scanf("%d",&num);//輸入一個數numif(num==2) printf("%d是素數\n",num);
else if(num>=3)
for(i=1;i<=num;i++)
if((num%i)==0) n++;
if(n==2) printf("%d是素數\n",num);
else printf("%d不是素數\n",num);
n=0;
else printf("%d不是素數\n",num);
return 0;
求素數的演算法
8樓:匿名使用者
就是除了1和它本身外沒有能被整除的數,如7 11 13 17等
9樓:匿名使用者
除了1和它本身,沒有其他因數的,就是素數。
很「自然」了吧
10樓:匿名使用者
素數:只能被1或自身整除的整數。
判斷整數n是否為素數——採用窮舉法求解。
基本演算法:若 k%m==0 則說明 k 不是素數。其中 m 的取值範圍為:2~k的算術平方根。
偽語言描述:標誌變數flag,=1為素數,=0為合數。
for ( flag=1,m=2; flag && m if ( flag ) 是素數; else 不是素數; 11樓: 你們這些人,人家問演算法。 很簡單,從2到該數字的平方根求餘數,沒有0餘數就是素數。 12樓:匿名使用者 除了1和它本身,沒有數能被它除還沒有餘數的 吼吼,大白話啊 13樓:匿名使用者 -_-~一句一句的說嘛 以下是求1到20的素數的c語言程式 c include int main int i,j,flag printf 1 20的素數有 for i 2 i 20 i flag 0 for j 2 j i 2 j if i j 0 flag 1 break if flag 0 i 1 printf d i... 祭盼雁戢鳴 指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數 1和自己 的自然數即為素數。比1大但不是素數的數稱為合數。1和0既非素數也非合數。素數在數論中有著很重要的地位。最小的素數是2,他也是唯一的偶素數。最前面的素數依次排列為 2,3,5,7,... 思路 定義一個函式用於判斷該數是否是素數,接著從200到300進行依次判斷該數是否是素數,如果是則累加,最後輸出累加和即可。include int fun int n 判斷該數是否是素數int i for i 2 i 用c語言編一程式,輸出200 300之間的全部素數,求解啊 樓上的樓上演算法可以改...c語言程式設計 求1到20的素數
素數 的含義是什麼(數學範圍)
求200 300之間全部素數的和,C語言程式設計