编写程序 输入两个正整数m和n(1<=m<n<=500),统计并输出m和n之间素数个数及这些素数的和,

要求定义并调用函数prime(n)判断n是否为素数。以下是我的代码,请问哪里出错了?#include<stdio.h>intmain(void){inti,m,n;int... 要求定义并调用函数prime(n)判断n是否为素数。
以下是我的代码,请问哪里出错了?
#include <stdio.h>
int main(void)
{
int i,m,n;
int count=0;
int sum=0;
int prime(int n,int i);
printf("输入两个正整数m和n(1<=m<=n<=500):\n");
scanf("%d%d",&m,&n);
if(m<1||n>500)
printf("Error!\n");
else
{
for(i=m;i<=n;i++)
{
if(prime(n,i)==1)
{
count++;
sum+=i;
}
}
printf("%d到%d之间的素数个数=%d,素数和=%d\n",m,n,count,sum);
return 0;
}
}
int prime(int n,int i)
{
for(i=2;i<=n;i++)
if(n%i==0) return(0);
else
return(1);
}
展开
 我来答
匿名用户
2017-11-15
展开全部
int prime(int i)
{int j;
if(i==1)
return 0;
for(j=2;j<=i;j++)
{if(i%j==0)
{return 0;}}
return 1;}
因为对于任何数i,i%i总是等于0的。循环的终止条件应该是j<i或者j*j<=i。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式