显示所有质数,弄不出1来
题中让我弄出1~100的质数,研究半天,终于出来了
#include <iostream>
using namespace std;
void main ()
{
int n,b,c,d;
for(n=1;n<=100;n++)
{
for (b=n;b>=1;b--)
{
d=b-1;
if (d==0)
break;
c=n%d;
if (d>1&&c==0)
break;
else if (d==1&&c==0)
cout <<n<<" "endl;
}
}
}
我的意思是让每个数一个个往下除(比自己小的数),如果中途有能除尽了的数就不是质数,当只有除到1时才能除尽就是质数了,这样出来后是从2开始的,我明白当n=1时,d=b-1=0了,break跳出,可是不跳出会说程序出错,还让我发送,我理解的原因是因为c=n%d,中,d=0了,所以不行,可这样一来,1就出不来了啊!帮忙改改让1也自己出来啊,我这个程序能想到的就是在循环之前直接加个cout <<"1";了