tft每日頭條

 > 圖文

 > c語言統計10個數中素數個數

c語言統計10個數中素數個數

圖文 更新时间:2024-11-26 16:41:37

c語言統計10個數中素數個數?素數也叫質數,檢驗一個數是否為素數的最快方法:就是用不大于這個數的平方根的所有素數試除,如果有一個能整除,它就是合數;如果都不能整除,它就是素數,程序如下:,今天小編就來說說關于c語言統計10個數中素數個數?下面更多詳細答案一起來看看吧!

c語言統計10個數中素數個數(C語言找素數并統計個數)1

c語言統計10個數中素數個數

素數也叫質數,檢驗一個數是否為素數的最快方法:就是用不大于這個數的平方根的所有素數試除,如果有一個能整除,它就是合數;如果都不能整除,它就是素數,程序如下:

//找區間[m,n]上的素數并統計個數

#include <stdio.h> /*包含輸入輸出函數*/

#include <math.h> /*包含數學函數*/

main () /*主函數*/

{ //先找小于2^31的平方根的素數并存入數組z[]中:

int z[4793]={2}; //2是第一個素數。因46349以内共有素數4793個,且46349已經大于2^31的平方根

int i,x,g=0,q; //循環變量i,數組下标x,素數個數g,整數i的算術平方根q

for(i=3;i<=46349;i =2) //因大于2的偶數一定不是素數

{ x=0; q=sqrt(i); //每次都從z[0]開始檢驗

while (i%z[x] !=0) //如i不能被z[x]整除,用下一個素數檢驗

{ if(z[x]<=q) x ; //i不是素數時:用數組中的下一個素數檢驗

else //如z[x]>q),則i是素數,此時:

{ g ;z[g]=i; //素數個數g加1,保存該素數,

break; //退出内循環(檢驗下一個整數)

}

}

}

//再找閉區間[m,n]上的素數:

int m,n; //整數範圍[m,n] (其中m,n為自然數,且m<=n<2^31)

printf("請輸入整數範圍[m,n], (m n之間用空格隔開隔開):"); scanf("%d %d",&m,&n);

g=0;//素數總個數g置0

if(m<=2) { printf("2 "); m=3; g ; }

if(m%2==0) m ; //使m從奇數開始

for(i=m;i<=n;i =2) //因大于2的偶數一定不是素數

{ x=0;q=sqrt(i); //每次都從第一個素數z[0]開始檢驗

while (i%z[x] !=0) //如i不能被z[x]整除,用下一個素數檢驗

{ if(z[x]<=q) x ; //i不是素數時:用數組中的下一個素數檢驗

else //如z[x]>q,則i是素數,此時:

{ g ; //素數個數g加1

printf("%d ",i); //輸出該素數

break; //退出内循環(檢驗下一個整數)

}

}

}

printf("\n所找閉區間上共有素數:%d個",g);

return 0;

}

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved