经分析,以上代码使用flag的值来判断帆纳输入的n是否为素数,flag=1,n为素数;flag=0,n不是素数。完善if条件语句,第亩轿隐一个if,主函数中的if调用函数,需要填入一个参数,迅厅即prime(n);第二个if,是判断什么情况下flag=0,即输入的整数不为素数,即(n/i==0),余数为0,可以整除;最后返回flag的值,returnflag
但是经过运行可以知道,n=4的时候,程序判断4是素数,明显是错误的,n取0和1的时候同理,程序存在漏洞。分析得知,在定义函数的过程中,for循环条件语句,i=0,如果为负整数,另加判断条件,略)
1、首先需要打开vs软件工程,准备好一个空白的C语言文件,引入头文件,主函数中暂时没有内容:
2、这里开始编写代码,这里判断素数需要用到平方根,所以要在头文件中引入math库,然后编写判断素数的函数,函数有唯一的参数n,代表素数。判断的依据是素数n只要不能被 2 到根号下n之 间任一整数整除,则n必定是素数,最后在主函数中调用判断素数的函数即可:
3、最后,编译运行程序,在d出的命令行中输入17这个素数,程序的打印结果是17是素数,证明了举山程序的正确性。以正拆中上就是用C语言判御李断素数的流程:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)