zoukankan      html  css  js  c++  java
  • 筛质数大优化

    顾名思义,“大”,指的是达到一定程度才是优化。。。

    同桌大彬给了我一种优化算法,简直666

    原来的代码:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    int a;
    bool ok;
    for(long long i=2;i<=100000000;i++){
    if(i==2){
    cout<<2;
    continue;
    }
    ok=1;
    for(int j=2;j<=sqrt(i);j++){
    if(i%j==0)
    ok=0;
    }
    if(ok==1)
    printf("%lld ",i);
    }
    return 0;
    }

    一个个筛,显然数大了效率就低;

    这是现在的:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    int a;
    bool ok;
    cout<<2<<endl<<3<<endl;
    for(long long i=6;i<=100000000;i+=6){
    ok=1;
    for(int j=2;j<=sqrt(i-1);j++){
    if((i-1)%j==0)
    ok=0;
    }
    if(ok==1)
    cout<<i-1<<endl;
    ok=1;
    for(int j=2;j<=sqrt(i+1);j++){
    if((i+1)%j==0)
    ok=0;
    }
    if(ok==1)
    printf("%lld ",i);
    }
    return 0;
    }

    当然优化做的不彻底,但是聊胜于无

    看看数据对比:

    100
    原:0.01628s
    优:0.01663s
    1000
    原:0.06158s
    优:0.0646s
    10000
    原:0.1687s
    优:0.1878s
    1000000
    原:20.65s
    优:11.15s
    10000000
    原:367.2s
    优:168.3s

    另一组数据跑了一个小时了,没跑完,不放上了。

    由此可见,然而竞赛。。。这么大的数据用的到吗????

  • 相关阅读:
    NetCore去注册Eureka
    netcore项目使用swagger开发
    二、Rabbit使用-初次测试
    一、Rabbit使用-安装教程
    安装Erlang使用RabbitMQ
    Mac根目录下挂载文件
    将博客搬至CSDN
    photoshop for mac
    ssh 端口转发
    Linux 全局使用php命令
  • 原文地址:https://www.cnblogs.com/648-233/p/10544308.html
Copyright © 2011-2022 走看看