这个程序哪里有错啊,怎么求的值不对呢??
#include <iostream.h>
#include <math.h>
bool Prime(int i);
void main()
{
int r;
cout < < "enter a number: ";
cin> > r;
if(Prime(r))
cout < < "prime. " < <endl;
else
cout < < "not prime. " < <endl;
}
bool Prime(int i)
{
bool flag;
int j;
for(j=2;j <=sqrt(i);j++)
{
if(i%j==0)
{
flag=0;
break;
}
else
{
flag=1;
break;
}
}
return flag;
}
判断不正确,不知道为什么..帮忙看看吧,谢谢!
[解决办法]
应该是下面这样:
bool Prime(int i)
{
bool flag=1;
int j;
for(j=2;j <=sqrt(i);j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
return flag;
}
[解决办法]
for(int flag=1,s=sqrt(i),j=2; j <=s; j++)
{
if(i%j==0)
{
flag=0;
break;
}
}