1.
int prime(int x)
{
for(int i=2;i<=sqrt((float)x);i++)
{
if(x%i==0)
return 0;//表示不是素数
}
return 1;//返回1,表示是素数
}
- 除了2,与3之外,素数均在6的倍数的两侧
#include<iomanip>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int prime(int x)
{
for(int i=2;i<=sqrt((float)x);i++)
{
if(x%i==0)
return 0;//表示不是素数
}
return 1;//返回1,表示是素数
}
void asd(int x)
{
if(x==2||x==3)
cout<<"是素数";
else if((x%6==1||x%6==5)&&prime(x))
cout<<"是素数"<<endl;
else
cout<<"不是素数"<<endl;
}
int main()
{
int x;
while(~scanf("%d",&x))
asd(x);
return 1;
}
对于某些与素数有关的问题
如果判断次数过多,会造成时间复杂度很大,为此可以建一个表,将素数存入