今日做了?統(tǒng)計素數(shù)并求和??的題永脓,來自于浙大翁愷老師的課程習題,題目內容如下:
本題著手點在于兩點搅吁,一是輸入兩個正整數(shù)排宰,且找出兩個數(shù)之間的所有素數(shù)的個數(shù)那婉,二是將找出的素數(shù)相加求和;
答題:
#include<stdio.h>
int main()
{
int M,N;
scanf("%d %d",&M,&N);
if(M==1){ //當 M 輸入為 1 時盐类,因為 1 不是素數(shù),將其剔除在跳,令 M 等于 2 ,繼續(xù)向下判斷瓷翻;
M=2;
}
int i,j;
i=M;
int num=0,sum=0;
while(i<=N) //讓 i 從 M 到 N 遍歷割坠;
{
int isprime=1; //用于判斷素數(shù)的依據是 isprime=1 ,若初始的 i 值是 1 彼哼,則不進入循環(huán),會直接被判為素數(shù)剪菱,所以要將 1 剔除拴签;
for(j=2;j<i;j++) //將 i 分別對 2 到 i-1 的數(shù)進行取余,素數(shù)只能整除 1 和自身篓吁;
{
if(i%j==0){ //判斷余數(shù)是否為 0 ;
isprime=0; //當不是素數(shù)時冻押, 令 isprime=0 盛嘿,并跳出for循環(huán);
break;
}
}
if(isprime){ //for循環(huán)結束后次兆,再次對 isprime 進行判斷,當是素數(shù)時漓库,即 isprime=1 . 計數(shù)并求和园蝠;
num++;
sum+=i;
}
i++;
}
printf("%d %d\n",num,sum);
return 0;
}
運行結果: