作业帮 > 综合 > 作业

C语言素数的判定为什么不能用下面的方式来判断data是否为素数for(i=2;i

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/15 10:19:06
C语言素数的判定
为什么不能用下面的方式来判断data是否为素数
for(i=2;i
C语言素数的判定为什么不能用下面的方式来判断data是否为素数for(i=2;i
各位请不要乱说,说以前请运行一下,一楼的改法不可取,楼主不信可以试试,第一个程序假设当data=9时,当i=2时,cnt也是加1,但显然9不是素数,也就是程序刚刚开始就错了.
二楼说第二个程序不行,那是瞎说,你的data开根号,只是节省了运行时间而已.
第二个程序显然可以,就是在Data被i整除时跳出 for循环,是素数, 不再执行for循环但都不能整除时,i已经大于half,不是素数
举个例子说:
当data=4时,到half能找到2使其跳出 for循环
当data=6时,到half能找到2使其跳出 for循环
当data=7时,到half不能找到数使其跳出 for循环
换言之:
half=Data/2;
for(i=2;ihalf) {
xx[n]=Data;
n++;
}
明白了吗?明白了请给分.
问题补充:
第二个程序存在缺陷,比如当data=1时.