输入两个正整数m和n,统计并输出m和n之间的素数的个数
#include<stdio.h>doubleprime(intm){inta,c,i;for(i=2;i<=m/2;i++){if(m%i==0){a=0;}if(m%...
#include <stdio.h>
double prime(int m)
{
int a,c,i;
for(i=2;i<=m/2;i++){
if(m%i==0){
a=0;
}
if(m%i==1)
a=1;
break;
}
return a;
}
int main(void)
{
int a,b,c=0,i,m,n,s=0;
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);
for(m;m<=n;m++){
if(prime(m)==1)
s=s+m;
c=c+1;
}
printf("Count=%d,sum=%d",c,s);
return 0;
}
哪里错了 展开
double prime(int m)
{
int a,c,i;
for(i=2;i<=m/2;i++){
if(m%i==0){
a=0;
}
if(m%i==1)
a=1;
break;
}
return a;
}
int main(void)
{
int a,b,c=0,i,m,n,s=0;
printf("Input m:");
scanf("%d",&m);
printf("Input n:");
scanf("%d",&n);
for(m;m<=n;m++){
if(prime(m)==1)
s=s+m;
c=c+1;
}
printf("Count=%d,sum=%d",c,s);
return 0;
}
哪里错了 展开
2个回答
展开全部
改了一些:
#include <stdio.h>
int prime(int m)
{
int i;
for(i = 2; i <= m / 2; i++)
if(m % i == 0) return 0;
return 1;
}
int main(void)
{
int i, m, n, c=0, s=0;
printf("Input m:"); scanf("%d", &m);
printf("Input n:"); scanf("%d", &n);
for(m; m <= n; m++)
if(prime(m)) { s += m; c++;}
printf("Count = %d, sum = %d", c, s);
return 0;
}
提供思路,未经全面测试,楼主自己试试看。
展开全部
if(m%i==0){
a=0;
}
if(m%i==1)
a=1;
break;
}这句有问题 可以用flag来表示判断
这是我写的
#include<stdio.h>
#include<math.h>
int main()
{
int i, n, k;
scanf("%d", &n);
k = sqrt(n + 1);
for(i = 2; i <= k; i++)
{if(n % i == 0)
break; }
if(i <= k || n == 1)
printf("No");
else
printf("Yes");
return 0;
}
a=0;
}
if(m%i==1)
a=1;
break;
}这句有问题 可以用flag来表示判断
这是我写的
#include<stdio.h>
#include<math.h>
int main()
{
int i, n, k;
scanf("%d", &n);
k = sqrt(n + 1);
for(i = 2; i <= k; i++)
{if(n % i == 0)
break; }
if(i <= k || n == 1)
printf("No");
else
printf("Yes");
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询