大家好,今天小编关注到一个比较有意思的话题,就是关于c语言判断m是否为素数的问题,于是小编就整理了3个相关介绍c语言判断m是否为素数的解答,让我们一起看看吧。
C语言,判断m是否素数?
/*Prime函数用来判断参数m是否是素数,用的是用m被2~√m之间的整数除,看能不能整除。能整除,说明是合数,返回0,否则是素数,返回1。主调函数调用它,对输入的整数n值进行判断,看是否素数。*/ #include
C语言编程判断m是否为素数?
1、首先打开visualC++软件,按下快捷键Crtl+N新建任务,弹出窗口用鼠标左键点击文件,选择C++sourcefile:
2、接下来就编写主程序,素数是只能被1和自己整除的数,因此判断一个整数m是否为素数,只需被2~ 根号m之间的每一个整数去除就可以了。如果m不能被2~ 根号m 间任一整数整除,m必定是素数。所以这里要先去用sqrt求q的更好,在用for循环计算每一个数:
3、程序编完后,就可以查看结果了,这里输入17,程序判断17是素数,在多输入几个数进行判断,发现程序可以完美的运行:
c语言判断正整数是否为素数?
将:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在这个for循环前令g=0。
因为输入的不止一个数,开头的初始化g=0,在第一个数的时候就可能已经被改了。后面的数不重新初始化g=0,就不能保证对了。
判断一个正整数n是不是素数的思路:
思路1.因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。
思路2.另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ √m 之间的每一个整数去除就可以了。
如果 m 不能被 2 ~ √m 间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。
原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 √m,另一个大于或等于 √m。
到此,以上就是小编对于c语言判断m是否为素数的问题就介绍到这了,希望介绍关于c语言判断m是否为素数的3点解答对大家有用。