永发信息网

比较两个C程序有何不同?

答案:3  悬赏:0  手机版
解决时间 2021-05-15 22:34

1.#include"math.h"
main()
{int m,i,k,flag=0;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
{flag=1;
break;}
if(flag==0)
printf("%d is a prime number\n",m);
if(flag==1)
printf("%d is not prime number\n",m);
getch();
}

2.#include"math.h"
main()
{int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
printf("%d is a prime number\n",m);
else
printf("%d is not prime number\n",m);
getch();
}

最佳答案






素数的判断方法有三种,任取一种就能编程,你这两程序都用的是第三种。





第一个程序:定义的flag=0,如果从2到自己的平方根能整除,则flag=1,并跳出循环,输出此数不是素数;

如果不能被整除,则flag仍为0,输出此数是素数。





第二个程序:用循环次数的i来判断是否为素数,如果最后输出的i值大于此数的平方根(即x从2到x的平方根都循环不到被整除的数),说明此数为素数,否则不为素数。



第二种比较通俗易懂,比较常用。
全部回答
两个都是求质数,第一个的执行时间较长,第二个的应比第一个短,第二个不需给flag赋值,第一个 浪费存储flag的内存。总起来第二个节省代码,易懂。

首先想到的求素数的方法是看看一个数是不是不能被1到它本身的任何数整除,如不能则是素数反之不是。用C语言写出的代码就应该是第一种。

但上面的方法麻烦,考虑效率问题就只要一个数不能被1到它自身的平方根的任意整数整除就是素数,用C语言写就是第二种。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
娄星区娄底娄星区人民医院-发热门诊我想知道
怎样在网上发表自己写的小说
我只想减腿部,又太懒,到底怎么才能快点瘦?
诺基亚MEGOO系统什么时候出
复合酒吧风格的标语,酒吧灯光有哪些?
一个人走看见一道门我想了个问题,下面这个问
广州的86年要到多少岁才能退休?交多少年社保
萨尔图区大庆兴胜五交化商场地址是什么,有没
为什么每次都提交答案失败
得了肾结石有什么蔬菜水果不能吃
浏阳市长沙武汉黑鸭(湘鹏路)地址在哪,我要去
白手和狂穿什么一套时装好
火影到底什么时候出完啊
魔兽争霸地图过大,怎么调1.24E
脾虚怎么办啊
推荐资讯
怎样吧网站上的一段视频弄到空间或贴吧
为什么人有某段时间会变的很懒!!
小麦的芽苗菜长多高应该割下来
问道的补丁有什么用的?
不做恋人 我们做什么?回答:什么都不做~~一切
我手机出现了怪事!
湖南卫视的自制剧《单身公主相亲记》好久播?
炫舞怎么加团贡
北湖区郴州五谷渔粉(八一路生源时代广场)地址
上善若水,後德载物。
北湖区郴州龙泉宾馆(燕泉北路店)在什么地方啊
群论坛怎么评论?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?