第1步:判斷一個數(shù)為素數(shù),這里用n=5舉例。
#include<stdio.h>
int main()
{
int b;
int n = 5;
for(b=2; b<n; b++)
if(n%b == 0) //合數(shù)
{
break;
}
if(b == n)
{
printf("%d", n);
}
return 0;
}
第2步:嵌套一個for循環(huán)评肆,實現(xiàn)自動按順序判斷n到m之間的素數(shù)。
#include<stdio.h>
int main()
{
int b;
int n,m,i=0;
scanf("%d %d", &n, &m);
for(i=n;i<=m;i++)
{
for(b=2; b<=i; b++)
{
if(i == 2 )
{
printf("%d ", i); //如果有2非区,輸出2
}
if(i%b == 0) //合數(shù)則跳出循環(huán)
{
break;
}
if(i == b+1) //與第一步不同的地方瓜挽!
{
printf("%d ", i);
}
}
}
return 0;
}
第3步:給這些素數(shù)求和即可。
#include<stdio.h>
int main()
{
int b,n,m,i=0;
int sum = 0;
scanf("%d %d", &n, &m);
for(i=n;i<=m;i++)
{
for(b=2; b<=i; b++)
{
if(i == 2 ) //單獨判斷有2的情況
{
printf("%d ", i);
sum += i;
}
if(i%b == 0) //合數(shù)征绸,跳出循環(huán)
{
break;
}
if(i == b+1) //n不能被2到n-1整數(shù)久橙,則為素數(shù)
{
printf("%d ", i);
sum += i;
}
}
}
printf("\n");
printf("%d", sum);
return 0;
}
輸入樣例:
1 100
輸出樣例:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
1060
所以1至100之間所有素數(shù)之和為1060。