zoukankan      html  css  js  c++  java
  • 复习2-数论模板

    1.求最大公约数

    #include<cstdio>
    using namespace std;
    int x,y;
    int gcd(int a,int b){
        return b == 0 ? a : gcd(b,a%b);
    }
    int main(){
        scanf("%d%d",&x,&y);
        printf("%d",gcd(x,y));
        return 0;
    }

    2.扩展欧几里得

    int exgcd(int a,int b,int &x,int &y){
        if(b == 0){
            x = 1,y = 0;
            return a;
        }
        int r = exgcd(b,a%b,x,y);
        int t = x;
        x = y;
        y = t - a/b*y;
        return r;
    }

    3.线性筛素数

    void prime(){    
        for(int i = 0;i <= n;i++) is_prime[i] = 1;
        is_prime[0] = 0;is_prime[1] = 0;
        for(int i = 2;i <= n;i++){
            if(is_prime[i]){
                prime[tot] = i;
                for(int j = 2 * i;j <= n;j += i) is_prime[j] = 0;
                tot++;
            }
        }
    }
    埃拉托斯特尼筛
    void prime(){
        for(int i = 2;i <= n;i++){
            if(!vis[i])p[++cnt] = i;
            for(int j = 1;j <= cnt&&i*p[j] <= n;j++){
                vis[i*p[j]] = 1;
                if(i%p[j] == 0)break;
            }
        }
    }
    欧拉筛

    4.逆元

    5.中国剩余定理

    6.卢卡斯定理(组合数取模)

    7.卡特兰数

  • 相关阅读:
    2021.4.4(每周总结)
    2021.4.2
    2021.4.1
    2021.3.31
    2021.3.30
    2021.3.29
    2021.3.28(每周总结)
    2021.3.26
    C语言中指针与取地址符&详解
    使用JDBC连接、操作数据库、实现数据处理
  • 原文地址:https://www.cnblogs.com/bryce02/p/9931426.html
Copyright © 2011-2022 走看看