【发布时间】:2017-05-17 14:42:28
【问题描述】:
我想打印 1 到 100 之间的质数,我编写如下代码,但是当我运行它时,它开始打印 3,7,11,17....91 为什么不打印代码 2? 请朋友们帮帮我
#include <stdio.h>
int main(void)
{
for(int i=2;i<100;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
break;
else if(i==j+1)
printf("%d\n",i);
}
}
}
【问题讨论】:
-
因为
2%2 == 0,你必须假设,'1 和 2' 是质数并继续在那里 -
我应该如何以及在哪里修改我的代码?
-
有很多选择,但我认为在循环之前使用
printf("2\n")就可以了...... -
非常感谢!但我不想将 2 手册放入代码中,我希望代码自行打印 2
-
@DanielSanchez 事实上
i=2从未在if(i%j==0)中测试过,因为对于第二个循环j=2;j<i。