输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和

#include<stdio.h>voidmain(){intm,n,i;intflag,count,sum;intprime(intm,intn);printf("请输... #include<stdio.h>
void main()
{
int m,n,i;
int flag,count,sum;
int prime(int m,int n);
printf("请输入两个正整数m和n(1<=m<=n<=500):");
scanf("%d%d",&m,&n);
sum=0,count=0;
for(i=m;i<=n;i++){
flag=prime(m,n);
if(flag=1){
sum=sum+i;
count=count+1;
}
}
printf("%d到%d之间的素数个数=%d,素数和=%d\n",m,n,count,sum);
}
int prime(int m,int n)
{
int i,flag=1;
for(i=2;i<=(m+n)/2;i++){
if(m%i==0)
{flag=0;break;}
}
return flag;
}

运行总是求m到n的和,各位大神,应该怎么做?C语言基础编程题
展开
 我来答
lkh__1991
推荐于2016-07-09 · TA获得超过557个赞
知道小有建树答主
回答量:466
采纳率:0%
帮助的人:289万
展开全部
#include <stdio.h>
int IsPrime(int i){
    int j=0;
    for(j=2;j<i;j++){
       if(0==(i%j)){
          return 0;
       }
    }return 1;
}
void main(){
int m,n,i;scanf("%d %d",&m,&n);
for(i=m+1;i<n;i++)
if(IsPrime(i)==1)
printf("%d ",i);
}

#include <stdio.h>
int IsPrime(int i){
    int j;
    for(j=2;j<i;j++){
       if(0==(i%j)){
          return 0;
       }
    }return 1;
}
void main(){
int m,n,i,sum=0;scanf("%d %d",&m,&n);
for(i=m+1;i<n;i++){
if(IsPrime(i)==1){
printf("%d ",i);
sum+=i;
}
}
printf("\ntheir sum is:%d\n",sum);
}

#include <stdio.h>
int IsPrime(int i){
    int j;
    for(j=2;j<i;j++){
       if(0==(i%j)){
          return 0;
       }
    }return 1;
}
void main(){
int m,n,i,sum=0,cnt=0;scanf("%d %d",&m,&n);
for(i=m+1;i<n;i++){
if(IsPrime(i)==1){
printf("%d ",i);
sum+=i;
cnt++;
}
}
printf("\nTotally %d prime numbers,their sum is %d\n",cnt,sum);
}

想要哪个随便选

追问
你好,首先要感谢你,你的方法是简单易懂,但我想知道我的思路错在哪里。。。想了好久
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式