欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MOOC 翁恺C语言 第五周编程练习1 素数和

程序员文章站 2024-03-08 09:36:36
...

题目内容:

我们认为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;
}

运行结果:MOOC 翁恺C语言 第五周编程练习1 素数和
课程页面