MOOC 翁愷C語言 第五週程式設計練習1 素數和

大腦抽筋發表於2020-10-16

題目內容:

我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推。

現在,給定兩個整數n和m,0<n<=m<=200,你的程式要計算第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。

輸入格式:

兩個整數,第一個表示n,第二個表示m。

輸出格式:

一個整數,表示第n個素數到第m個素數之間所有的素數的和,包括第n個素數和第m個素數。

輸入樣例:

2 4

輸出樣例:

15

時間限制:500ms記憶體限制:32000kb

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int isPrime (int n);
int main()
{
    int n, m, cnt=0, sum=0, i;
    scanf("%d %d",&n,&m);
    if (n!=m){
        for (i=2; cnt<m; i++){
            if (isPrime(i)){
                cnt++;
                if (cnt>=n){
                sum+=i;
                }
            }
        }
    }
    else{
        if (n==1){
            sum =2;
        }
        else{
            for (i=2; cnt<=m; i++){
                if (isPrime(i)){
                    cnt++;
                    if (cnt==n){
                        sum=i;
                    }
                }
            }
        }
    }
    printf("%d",sum);
    return 0;
}
int isPrime (int n){
    int ret = 1;
    if (n==2||n==3)
        return ret;
    for (int i=2;i*i<=n;i++){
        if (n%i==0){
            ret = 0;
            break;
        }
    }
    return ret;
}

執行結果:在這裡插入圖片描述
課程頁面

相關文章