0
点赞
收藏
分享

微信扫一扫

素数和_只愿与一人十指紧扣_新浪博客


题目内容:

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。


注意:是第n个素数到第m个素数,不是n和m之间的素数!


输入格式:

两个正整数,第一个表示n,第二个表示m。


输出格式:

一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。


输入样例:

2 4



输出样例:

15




时间限制:500ms 内存限制:32000kb





代码如下:



​​

素数和_只愿与一人十指紧扣_新浪博客_java

​​​
​​

素数和_只愿与一人十指紧扣_新浪博客_数据结构_02

​​



#include
int main()
{
    int a[200]={0};int b=0;    int x;int n,m,sum;sum=0;
    for(x=2;x<1400;x++)
    {
        int t=1;
    for(int i=2;i
    {
        if(x%i==0)
        {
            t=0;
            break;
        }
    }
        if(t==1&&b<200)       
        {
            a[b]=x;b++;
        }
    }
    for(int i=0;i<200;i++)
    {
        //printf("%d\t",a[i]);
    }
    //printf("\n");
    scanf("%d%d",&n,&m);
    for(int i=n;i<=m;i++)
    {
        sum+=a[i-1];
    }
    printf("%d",sum);
    return 0;
}



总结:先用数组a[200]把前200个素数存储起来。



这个得到多少素数是可以控制的,但是也有弊端。如果参加比较的数太大,就是终止的数过大。我用:10000的时候就报错啦!



然后,2 4 只需要将a[1]到a[3]之间的数加起来就好啦。

举报

相关推荐

0 条评论