For循环检查如果是质数(没有使用MATLAB函数)
2视图(30天)
显示旧的评论
这是我的代码。任务是检查是否x2是质数。如果是的,y2逻辑,如果没有,y2设为逻辑0。我们不允许使用预制的功能。
x2 = 22;
为
我= 2:装天花板(x2/2)
如果
国防部(x2, i) = = 0
y2 = false;
其他的
y2 = true;
结束
结束
我的代码运行,似乎适合所有数字旁边x2 = 99。对于这个输入,它给我的逻辑结果。为什么和如何修复它吗?
谢谢提前
0评论
接受的答案
约翰D 'Errico
2021年1月28日
编辑:约翰D 'Errico
2021年1月28日
你的代码不工作。事实上,它有一个严重的错误。
您正在使用一个循环。每一个通过循环,它集y2或真或假。如果最后通过循环,你碰巧得到的结果国防部(x2, i) = = 0,那么你的代码将会失败。
相反,如果这些插件是零,那么你就完成了。不需要任何进一步的测试,不能质数。所以你可以用打破尽快退出循环。或者你可以使用while循环。
接下来,您应该认识到,一路x2/2太长的一个循环。你需要经过sqrt (x2) ?想它!
考虑之间的区别
√1 e6)
1 e6/2
你要哪循环执行?