c语言输入两个正整数m和n,求出[m,n]区间的所有素数
#include<stdio.h>intmain(){intm,n,i,j,a[100],x=0;scanf("%d%d",&m,&n);for(i=m;i<=n;i++...
#include <stdio.h>
int main ()
{
int m,n,i,j,a[100],x=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j==i)
{
a[x]=i;
x++;
}
}
for(i=0;i<=x;i++)
{
printf("%d",a[i]);
}
}
帮我看看这个程序哪里有问题吧。。。谢谢 展开
int main ()
{
int m,n,i,j,a[100],x=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j==i)
{
a[x]=i;
x++;
}
}
for(i=0;i<=x;i++)
{
printf("%d",a[i]);
}
}
帮我看看这个程序哪里有问题吧。。。谢谢 展开
5个回答
展开全部
除了1和自身之外没有其它正整数因子的正整数称为素数,也就是不用试1和自身
for(j=2; j<=i; j++)改为 for(j=2; j<i; j++) 就可以了,
如果数很大这样还是比较低效的,最多试到i的平方根即可
for(j=2; j<=i; j++)改为 for(j=2; j<i; j++) 就可以了,
如果数很大这样还是比较低效的,最多试到i的平方根即可
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最后的输出循环有点问题
for (int i = 0; i < x; i++)
printf("%d", a[i]);
因为你上边已经x++,你如果判断条件里写成 for (int i = 0; i <= x; i ++)
程序是要崩的。
for (int i = 0; i < x; i++)
printf("%d", a[i]);
因为你上边已经x++,你如果判断条件里写成 for (int i = 0; i <= x; i ++)
程序是要崩的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(j=2;j<=i;j++) 改成 for(j=2;j<i;j++)
不然for(j=2;j<=i;j++)结束j = i+1;永远满足不了后面的if(j == i)也就是无论你怎么输入,都不会数据出来!
不然for(j=2;j<=i;j++)结束j = i+1;永远满足不了后面的if(j == i)也就是无论你怎么输入,都不会数据出来!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把for(i=0;i<=x;i++)改为for(i=0;i<x;i++)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询