• 整除理论


    整除也是一片新天地呢qwq


    整除的定义:设n为非负整数,d为正整数,如果n/d为整数。则称d整除n,记作d|n。

    任何正整数都整除0。


    约数:设n为非负整数,d为正整数,如果存在d|n,则称d为n的约数。

    最大公约数(GCD):设a为正整数,b为正整数,a和b的所有约数中,相同且最大的那个称为a,b的最大公约数,

    记作gcd(a,b)。

    最大公约数的性质:gcd(a,0)=a; gcd(a,b)=gcd(b,a mod b); gcd(a,b)=gcd(b,a);

    1,质因数分解求GCD

    先将a和b质因数分解。

    得到

    a=∏Piai

    b=∏Pibi

    gcd(a,b)=∏Pimin(ai,bi)

    2,辗转相除法求GCD

    利用性质:gcd(a,b)=gcd(b,a%b); gcd(a,0)=a;

    1 inline void gcd(int a,int b)
    2 {
    3     if(b==0) return a;
    4     return gcd(b,a%b);
    5 } 

    若gcd(a,b)=1,则称a,b互质。

    求n的正约数集合:试除法

    求1-n每个数的正约数集合:倍数法,类似于埃氏筛不同的是不是只用质数筛,是用每个数都筛一遍。


    倍数:若a,b为正整数,d为非负整数,若a|d,b|d,则称d为a,b的倍数。

    最小公倍数(LCM):a,b的所有公倍数中最小的那个。

    LCM(a,b)=a*b/gcd(a,b);

    LCM(a,b)=a*gcd(a,b)/b;

     1 inline int gcd(int a,int b)
     2 {
     3     if(b==0) return a;
     4     return gcd(b,a%b);
     5 } 
     6 
     7 inline int lcm(int a,int b,int ans)
     8 {
     9     ans=(a/gcd(a,b))*b;
    10     return ans;
    11 }
  • 相关阅读:
    iOS开发-UIScrollView原理
    关于tableView点击状态栏列表回到顶部的说明
    实用技术之bugly
    KVO你所不知道的"坑"
    iOS iPhone SDK 包含哪些东西?
    NSTime的全面认识
    四 数据结构与算法总结(一)
    三 数据结构 --数和二叉树
    二 线性表
    一 数据结构的概念,时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/Hoyoak/p/11386569.html
Copyright © 2020-2023  润新知