C語言練習4-11 統計素數並求和
阿新 • • 發佈:2018-12-13
練習4-11 統計素數並求和
本題要求統計給定整數M和N區間內素數的個數並對它們求和。
輸入格式:
輸入在一行中給出兩個正整數M和N(1≤M≤N≤500)。
輸出格式:
在一行中順序輸出M和N區間內素數的個數以及它們的和,數字間以空格分隔。
輸入樣例:
10 31 |
---|
輸出樣例:
7 143 |
---|
解題思路:題目的關鍵還是在於如何對素數進行判斷。其中我們用取餘的方式來判斷是否素數,再設定一個isprime來對判斷的結果進行處理。
#include <stdio.h> #include<stdlib.h> int main() { int N,M; int i,sum,cnt; cnt=0; sum=0; scanf("%d%d",&M,&N); for(i=M;i<=N;i++){ //取[M,N]的區間 int isprime,k; isprime=1; for(k=2;k<i-1;k++){ if(i%k==0){ //判斷是否素數:用i%2~i%i-1,如果取餘結果為0,就不是素數,開始下一迴圈 isprime=0; break; } } if(isprime){ cnt++; //計算素數個數 sum+=i; //計算素數的和 } } printf("%d %d",cnt,sum); return 0; }
結果: