zoukankan      html  css  js  c++  java
  • 清北学堂part1

    睡眠质量相当高的一天(滑稽)

    整一整都学了啥

    1:高精度(相当水,毕竟学过)

    2:模运算(?! 这还要讲?)

    3:快速幂(还要谢一位学习高数时间为我们讲解的同学...不得不说真的有效,快速幂已经是随手打的了,感谢这位同学)

    4:最大公约数,最小公倍数

    5:埃氏筛法

    我突然觉得要写一下线性筛...

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    int pri[1000005];
    int ok[5000000];
    int t;
    int main(){
        int n;
        cin>>n;
        for(int i=2;i<=n;i++){
            if(!ok[i]){
                t++;
                pri[t]=i;
            }
            for(int j=1;j<=t&&i*pri[j]<=n;j++){
                ok[i*pri[j]]=1;//这前面相当简单...
                if(!(i%pri[j])) break;//important point(以下为"ip")
            }
        }
        for(int i=1;i<=t;i++) printf("%d
    ",pri[i]);
        return 0;
    }

    我现在真的后悔发表那个"筛质数大优化"...不过也好,多一种方法...

    ip:做这个操作的目的在于此--------

    如果i%pri==0,说明i中含有pri作为质因数,而以下的i和pri[i]都比pri大,但其乘积一定含pri为质因数,然而我们的目的在于用最小的质因数排掉它,所以以下所有运算都将成为累赘,故舍去.等着以后遇上pri在做处理

    不知道讲清楚没有...

  • 相关阅读:
    [kuangbin带你飞]专题1-23
    ES code study
    ES特点
    CENTOS7命令
    ES单机版安装
    ES安装手册
    数据库三大范式(1NF,2NF,3NF)及ER图
    win10下Spark的环境搭建
    MySQL安装详细图解整理
    MySQL中format()函数
  • 原文地址:https://www.cnblogs.com/648-233/p/10656878.html
Copyright © 2011-2022 走看看