7----关于判定素数的函数

1.

int prime(int x)
{
    for(int i=2;i<=sqrt((float)x);i++)
    {
        if(x%i==0)
            return 0;//表示不是素数
    }
    return 1;//返回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;
}

对于某些与素数有关的问题
如果判断次数过多,会造成时间复杂度很大,为此可以建一个表,将素数存入

猜你喜欢

转载自blog.csdn.net/Nacht_one/article/details/81941497