Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
EX4_1:素数和.md 1.45 KB
Copy Edit Web IDE Raw Blame History
徒步天下 authored 2017-11-06 16:17 . 新建 EX4_1:素数和.md

EX4_1:素数和(5分)

题目内容:

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

// 素数数组,第一个表示素数个数
int prime[201]={3,2,3,5};

// 计算是否为素数,如果是则加入数组
// 应用素数数组作为测试因数,减少循环次数
int isprime(int n)
{
    int i, result=1;
    for (i=1; i<=prime[0]; ++i)
        if (n % prime[i] ==0) 
        {
            result =0;
            break;
         }
     
     if (result  && prime[prime[0]]<n)
      {
           prime[0]++;
           prime[prime[0]]=n;
      }
      return result;
}

int main()
{
    int i=7, a, b, sum=0;

    // 计算出前200个素数数组
    while (prime[0]<200)
    {
           isprime(i);
           i += 2;
    }
    scanf("%d %d", &a, &b);
    for (i=a;i<=b; ++i)
         sum +=prime[i];
    printf("%d\n", sum);
    return 0;
}

Comment ( 0 )

Sign in for post a comment