• 两种筛素数的方法


    筛选法求素数:
    
    void getprime()
    
    {
    
    int i,j;
    
    memset(b,1,sizeof(b));
    
    b[0]=0;
    
    b[1]=0;
    
    for(i=2;i*i<=100000;i++)
    
    {
    
    if(b[i])
    
    {
    
    for(j=i*i;i<=100000;j+=i)
    
    {
    
    p[j]=0;
    
    }
    
    }
    
    }
    
    }
    
    快速判断一个数是否为素数
    
    bool isPrime(int num)
    
    {
    
    if (num == 2 || num == 3)
    
    {
    
    return true;
    
    }
    
    if (num % 6 != 1 && num % 6 != 5)
    
    {
    
    return false;
    
    }
    
    for (int i = 5; i*i <= num; i += 6)
    
    {
    
    if (num % i == 0 || num % (i+2) == 0)
    
    {
    
    return false;
    
    }
    
    }
    
    return true;
    
    }
    
    快速求一个数以内的所有素数
    
    #define N 100000000
    
     
    
    bool notPrime[N+5];
    
     
    
    void ScreeningPrime(void)
    
    {
    
    int i, j, increment[6] = {0, 4, 0, 0, 0, 2};
    
    for (i = 5; i*i <= N; i += increment[i%6])
    
    {
    
    for (j = i; i*j <= N; j += increment[j%6])
    
    {
    
    notPrime[i*j] = true;
    
    }
    
    }
    
    }
  • 相关阅读:
    路由聚合(路由发布时)
    RIP
    路由选择和静态路由
    传输介质和IP地址
    升级VRP
    文件系统
    命令行基础
    常见的网络设备
    mysql基本的修改表的命令
    mysql的外键知识
  • 原文地址:https://www.cnblogs.com/beige1315402725/p/4992886.html
Copyright © 2020-2023  润新知