用C语言编写一个程序:定义一个判断素数(质数)的函数(函数名自拟),在主函数输入一个整数,通过调用自定义函数输出该整数是否为素数
要最简单的
issushu是函数名是吗
追答是的
追问return 0 -1 1这些是什么
追答return 0表示不是素数,1表示是素数,-1表示既不是素数也不是合数
追问定义的函数运行原理是什么
如何做到判断的
x%i==0是什么意思
追答从2开始判断能否被这个数整除,假如不能被2整除,就继续判断是否能被3整除,假如能被3整除,这个函数调用就结束,return 1;假如不能整除,继续增加,一直判断到x/2;最终也没能整除,说明这个数是素数。
追问为何判断到x/2,貌似不太准确
判断到本身或sqrt可以吗
num是输入的数是吗
追答其实判断到sqrt是最精确的,判断到x/2或者本身,也可以计算出来,就是计算量大一点。num是输入的数值
追问num是输入的数吗
追答num是输入的数
你看这对不
追答也是对的
追问int issushu这是什么意思
还有需要主函数吗
追答但是不准确,应该用sqrt来作为门限判定,而不是1/2
追问i表示的是什么
追答i是循环指示
你的那个程序改成sqrt更准确
从2开始到这个数的sqrt之间如果有数能够整除x,那x就不是素数
追问sqrt是啥,从2到本身这样定义不可以吗
哦,开根号,这怎么来判断
追答举个例,如果这个数是9,那么我们只需要判定2到3(3就是9的开方,即sqrt)就可以了。因为大于3的数不可能整除9。即大于sqrt(num)的数不可能整除num,你可以想一下,数学问题。懂了吗?
追问哦,智商有点跟不上了嘿嘿,判断到自身减一可以吗
追答都可以,但是没有意义,只会多做几次循环
追问哦,谢谢
追答只用到sqrt就行了
没事
追问x=1 x=0中间的双坚线什么意思
追答逻辑或操作,如果满意请采纳哦
追问不懂,能简单解释下吗
追答表示x等于1或者x等于0就会进去下面的语句
注意==才是判定,=是赋值
本回答被提问者和网友采纳