zoukankan      html  css  js  c++  java
  • 筛法求素数模板

    #include<bits/stdc++.h>
    using namespace std;
    int flag[100000];
    void askprime(){ flag[1]=1;//1既不是质数也不是合数 for(int i=2;i<=sqrt(100000);i++)//从1到sqrt(n) { if(flag[i]==0) { for(int j=2;i*j<=sqrt(100000);j++) { flag[i*j]=1;//打上标记 }//将素数后的倍数筛掉 } } }//筛出1~100000的素数 int main() { askprime(); for(int i=1;i<=100;i++) { if(flag[i]==0) cout<<i<<" "; } }

    欧几里德筛法

    #include<bits/stdc++.h>
    using namespace std;
    int prime[1005];
    int isntprime[1005]={0,0};
    int prime_num;
    void askprime()
    {
        for(int i=2;i<=1005;i++)//已知质数 
        {
            if(isntprime[i]==0)
            {
                prime[prime_num]=i;
                prime_num++;
            }
            for(int j=0;j<prime_num&&i*prime[j]<1005;j++)
            {
                isntprime[i*prime[j]]=1;//往后筛 
                if(i%prime[j]==0) break;//i第一个%到的prime[j]一定是这个合数最小的质因子 
            }
        }
    }
    int main()
    {
        askprime();
        int a;
        cin>>a;
        if(binary_search(prime+0,prime+102,4)==true) cout<<"Yes"<<endl;//找到返回1,没找到返回0
        else cout<<"No"<<endl;
    
        
    }//后面元素的值一定比前面元素的值大
    //前面元素乘上一个比自己最小质因数大的数
    //后面元素乘上一个比自己最小质因数小的数 

     

  • 相关阅读:
    jvm字节码简介
    Class类文件结构
    springboot 配置webservice接口
    jdk(1.8)命令行工具(二)
    springboot集成JsonRpc2.0
    jdk命令行工具(一)
    linux安装spark-2.3.0集群
    linux安装scala环境
    [机器学习实践] 针对Breast-Cancer数据集
    mac下 selenium + python 配置和入门
  • 原文地址:https://www.cnblogs.com/KyleDeng/p/9242815.html
Copyright © 2011-2022 走看看