读书人

这个程序哪里有错啊如何求的值不对呢?

发布时间: 2012-03-13 11:21:12 作者: rapoo

这个程序哪里有错啊,怎么求的值不对呢??
#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;
}
}

读书人网 >C++

热点推荐