询问一个C++判断素数(除了能被1和本身整除)问题
最近看到一个用C++判断素数(除了能被1和本身整除)的问题例子,不是很懂:
int main(int argc, const char * argv[])
{
int n,i,is_prime=true;
cout<< "Enter a number and press Enter";
cin>>n;
i=2;
while(i<=sqrt(n)){
if(n%i==0)
is_prime=false;
i++;
}
if(is_prime)
cout<<"Number is prime."<<endl;
else{
cout<<"number is not prime."<< endl;
}
system("Pause");
return 0;
}
代码中,
i=2;
while(i<=sqrt(n)){
if(n%i==0)
is_prime=false;
i++;
}
不明白为啥要使用:i<=sqrt(n). 以及为什么要设置i=2 ? 请各位大牛帮忙解答,谢谢!