任意输入一个正整数,判断是否为素数(C语言)


这篇博客来讲讲如何判断一个正整数是否为素数。

(素数:在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数;反之,则是合数。)

       

       如图所示,首先定义三个变量:m , i , flag 。

其中,m表示这个正整数,需要人为手动输入;

           i表示除数,i从2开始递增,i每增1,就要用m除以i,若能够整除则说明m除了1和它本身以外存在其他因数,m是合数;若不能整除,则m是素数;

那么如何表示一个数的素合性呢?我们定义了一个变量——flag; 

           当这个数是素数时,我们使flag=1;合数时,flag=0;

scanf("%d",&m); 不必多说,输入一个数给m,

我们重点讲一下for循环:

       首先,将i赋初值为2,且i每一次参加运算前都要进行判断,判断i是否<=m/2,若是,则进行循环体语句;若否,则退出for;

循环体语句中是一个if语句,判断m能否被i整除,若能,则使flag=0,且退出循环;若不能,则i++,重新进行for语句。

接下来是一个if语句,条件是flag;如果flag=1,即判断条件为真,则输出“素数”;否则,输出“合数”。

       因为本人平时练习的多是运用函数调用的方法,所以这次我并没有用函数调用。

       下面是运行结果:

       接触C语言半年了,第一次写博客,如有不足,还请大家指正,感谢!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM