请教c++ 求素数

来源:百度知道 编辑:UC知道 时间:2024/05/23 15:36:27
#include <iostream.h>
int main()
{
int i,d=0,a;
cin>>a;

while(a!=1)
{
for (i=1;i<=a;i++)

{ if(a%i==0)
d++;
}

if(d==2)

cout<<"yes"<<endl;//是素数

else

cout<<"no"<<endl;//不是素数

cin>>a;
}
return 0;
}

编译无错误
为什么每第一次运行可以检验素数
接下来就一直"不是素数" 我的循环错在哪里呢 请教

你的代码中,在下一次输入时,需要将d给再度初始化为0
这么改:

#include <iostream.h>
int main()
{
int i,d=0,a;
cin>>a;

while(a!=1)
{
for (i=1;i<=a;i++)

{ if(a%i==0)
d++;
}

if(d==2)

cout<<"yes"<<endl;//是素数

else

cout<<"no"<<endl;//不是素数

cin>>a;
d=0;//在这里加上对于d的初始化处理!!
}
return 0;
}