qqcmm1015 2022-10-30 18:33 采纳率: 61.8%
浏览 39

第n个素数到第m个素数之间所有的素数的和


#include<stdio.h>
int main()
{    int m,n,i,j,p=1,q,k;
    int sum=0;
    scanf("%d%d",&n,&m);
    int a[200]={2,3,5};
    for(i=3;i<=200;i++)        
        {for(k=6;k<=2000;k++)       
            {p=1;
            for(j=2;j<k;j++)
                {if(k%j==0)
                    {p=0;
                    break;
                    }
                }
            if(p==1)
                {a[i]=k;
                }
            }
        }
    for(q=n-1;q<=m-1;q++)  
        {sum=sum+a[q];
        }    
    printf("%d",sum);
    return 0;
}

题目内容:

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

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

输入格式:

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

输出格式:

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

输入样例:
2 4
输出样例:
15

调试为什么n会变成1999

  • 写回答

2条回答 默认 最新

  • 语言-逆行者 2022-10-30 19:03
    关注
    
    #include<stdio.h>
    #include<math.h>
     
    int isPrime(int x); //判定x是否为素数
    int main(void){
        int N = 0, M = 0;   
        int i = 2, cnt = 0, sum = 0;    //i为自增变量,cnt为计数器,sum为素数之和
        scanf("%d %d", &N, &M);
        while(cnt < M){   //当计数器达到区间最大值时结束循环
            if( isPrime(i) ){   //如果i是素数,则计数器加1
                cnt++;
                if(cnt >= N){
                    sum = sum + i;
                }
            }
            i++;
        }
        printf("%d", sum);
        return 0;
    }
    //判断x是否为素数,若是素数则返回1,否则返回0
    int isPrime(int x){
        int isPrimeOrNot = 1;
        int i = 2;
        for(i = 2; i <= sqrt(x); i++){
            if( x % i == 0 ) {  //若只能被1和自身整除,则为素数,否则不是素数,任何数都能被1整除,因此无须判断1
                isPrimeOrNot = 0;
                break;
            }
        }
        return isPrimeOrNot;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月30日

悬赏问题

  • ¥15 kotlin multiplaform 的共享模块支持蓝牙吗还是说安卓和ios的蓝牙都要自己配
  • ¥15 为什么我的查询总是显示无数据,该怎么修改呢(语言-java)
  • ¥15 IDDPM采样结果异常
  • ¥100 求一个,王者荣耀查询隐藏战绩的教材,爬虫代码
  • ¥60 Cocos creator缓动问题
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
  • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
  • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变