For循环检查如果是质数(没有使用MATLAB函数)

2视图(30天)
这是我的代码。任务是检查是否x2是质数。如果是的,y2逻辑,如果没有,y2设为逻辑0。我们不允许使用预制的功能。
x2 = 22;
我= 2:装天花板(x2/2)
如果 国防部(x2, i) = = 0
y2 = false;
其他的
y2 = true;
结束
结束
我的代码运行,似乎适合所有数字旁边x2 = 99。对于这个输入,它给我的逻辑结果。为什么和如何修复它吗?
谢谢提前

接受的答案

约翰D 'Errico
约翰D 'Errico 2021年1月28日
编辑:约翰D 'Errico 2021年1月28日
你的代码不工作。事实上,它有一个严重的错误。
您正在使用一个循环。每一个通过循环,它集y2或真或假。如果最后通过循环,你碰巧得到的结果国防部(x2, i) = = 0,那么你的代码将会失败。
相反,如果这些插件是零,那么你就完成了。不需要任何进一步的测试,不能质数。所以你可以用打破尽快退出循环。或者你可以使用while循环。
接下来,您应该认识到,一路x2/2太长的一个循环。你需要经过sqrt (x2) ?想它!
考虑之间的区别
√1 e6)
ans = 1000
1 e6/2
ans = 500000
你要哪循环执行?
3评论
Losoupbowla
Losoupbowla 2021年1月28日
我想休息会,因为没有具体的规则说不用休息。关于我为什么会测试每一个除数是当教授是分级,实际上他使用一个程序,输入随机值的地方x2测试我们永远不知道会得到什么。
谢谢你的帮助,真的很感激。

登录置评。

答案(1)

约翰Wirzburger
约翰Wirzburger 2021年1月28日
看来,这与当你设定y2。简而言之,你只是报告当我回y2价值=装天花板(x2/2)。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!