只有一個規律,除了2外都是奇數,另外向你介紹個判斷一個數是否是質數的規律,把一個數夾在兩個數的平方之間,這些質數中沒有尾數是5的,也沒有3的倍數
篩選法瞭解嗎?
首先承認2是質數,然後從這個2開始,依次剔除前面選出的質數倍數,至剔完N/2的倍數為止。剩下的都是質數。
比如,求20以內的。
首先剔除所有2的倍數4,6,8,10,12,14,16,18,20剩下:
2,3,5,7,9,11,13,15,17,19
然後剔除3的倍數9,15,剩下:
2,3,5,7,11,13,17,19。
剩下的數當中小於10(即20/2)的,而且還沒進行過倍數剔除的只有5和7了,但這裡邊已經沒有5的倍數和7的倍數,那麼它們就都是有質數了。
1.程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
2.程式原始碼:
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m
{ k=sqrt(m+1);
for(i=2;i
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++; if(h%10==0) printf("\n"); }
leap=1;
}
printf("\nThe total is %d",h);
只有一個規律,除了2外都是奇數,另外向你介紹個判斷一個數是否是質數的規律,把一個數夾在兩個數的平方之間,這些質數中沒有尾數是5的,也沒有3的倍數
篩選法瞭解嗎?
首先承認2是質數,然後從這個2開始,依次剔除前面選出的質數倍數,至剔完N/2的倍數為止。剩下的都是質數。
比如,求20以內的。
首先剔除所有2的倍數4,6,8,10,12,14,16,18,20剩下:
2,3,5,7,9,11,13,15,17,19
然後剔除3的倍數9,15,剩下:
2,3,5,7,11,13,17,19。
剩下的數當中小於10(即20/2)的,而且還沒進行過倍數剔除的只有5和7了,但這裡邊已經沒有5的倍數和7的倍數,那麼它們就都是有質數了。
1.程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
2.程式原始碼:
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=1;m
{ k=sqrt(m+1);
for(i=2;i
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++; if(h%10==0) printf("\n"); }
leap=1;
}
printf("\nThe total is %d",h);
}