#include <iostream>
#include <cmath>
using namespace std;
bool prime1(int n) //传统的判断素数。
{
if(n==1)
return 0;
if(n==2)
return 1;
int t=(int)sqrt(n);
for(int i=2;i<=t;i++)
if(n%i==0)
return 0;
return 1;
}
bool prime2(int n)//第二种先判断是否能被奇数整除,注意对2要单独判断
{
if(n==1)
return 0;
int t=(int)sqrt(n);
for(int i=3;i<=t;i+=2)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int n;
while(cin>>n)
{
if(prime1(n))
cout<<"prime1 : YES"<<endl;
else
cout<<"prime1 : No"<<endl;
if(n%2==1||n==2)
{
if(prime2(n))
cout<<"prime2 : YES"<<endl;
else
cout<<"prime2 : NO"<<endl;//写这一条考虑n是1的情况
}
else
cout<<"prime2 : NO"<<endl;
}
return 0;
}
运行: