您的位置:首页 > 其它

调用函数判断一个数是否为素数(传统+优化)

2014-03-25 12:47 330 查看
#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;
}


运行:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: