编写程序 输入两个正整数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);
} 展开
以下是我的代码,请问哪里出错了?
#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);
} 展开
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。
{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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询