1. 程式人生 > >C語言練習4-11 統計素數並求和

C語言練習4-11 統計素數並求和

練習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;
    }

結果:
在這裡插入圖片描述