为了账号安全,请及时绑定邮箱和手机立即绑定

请问这样算正确吗 输出的素数结果和参考的是一样的

#include <stdio.h>

int main()

{

    int m, n;

  

        for(m=2;m<=50;m++)

        {

           if(

               m==2||m==3||m==5||m==7||

               m%2!=0&&

               m%3!=0&&

               m%5!=0&&

               m%7!=0

               

               

               )

           {

           printf("%d ",m);

           }         

         }

return 0;    

}


正在回答

1 回答

当然是错的,你这个想法很有问题。你仔细看你的输出结果,是不是输出了47 3x19=47。

1 回复 有任何疑惑可以回复我~
#1

往北极 提问者

诶想知道为什么会这样呢 明明条件里已经预设了m%3!=0
2019-08-15 回复 有任何疑惑可以回复我~
#2

往北极 提问者

.....我查了一下 47也是素数19*3=57 而且参考源码也输出了47 但是我感觉参考代码更加合理 我想知道我这样的代码在计算较大的素数时会不会有什么漏洞
2019-08-18 回复 有任何疑惑可以回复我~
#3

小小疾飞 回复 往北极 提问者

我一开始看错了,这样其实也无错,只是有点冗余,单单把这个代码给别人看,别人可能不理解是干什么的。
2019-08-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问这样算正确吗 输出的素数结果和参考的是一样的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信