weixin_45773019
weixin_45773019
2020-10-19 21:42
采纳率: 100%
浏览 100

C语言求第N到第M个素数的和,N,M<小于200?

#include
#include
int isPrime(int n)
{
if (n<=1) return 0;
int sqr=(int)sqrt(1.0*n);
for (int i=2;i<=sqr;i++){
if(n%i==0) return 0;
}
return 1;
}
int main()
{
int m,n;
int pNum=1,sum=0;
int prime[200]={0};
scanf("%d %d",&n,&m);
for(int i=1;i<=2000;i++)//此处改为i<=1000却可以运行,但不能满分
{
if(isPrime(i)==1)
prime[pNum++]=i;
}
for(int j=n;j<=m;j++)
sum+=prime[j];
printf("%d",sum);
return 0;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • zx289544730
    zx289544730 2020-10-20 09:31
    已采纳

    用i<=2000的时候素数大于200个了,造成你的int prime[200]数组越界了

    点赞 评论

相关推荐