美文网首页算法
约数-试除法

约数-试除法

作者: dachengquan | 来源:发表于2020-08-04 18:16 被阅读0次

求N的正约数集合-试除法

若d>\sqrt{n}是一个约数那么n/d<\sqrt{n}也是一个约数。每个约数都是关于\sqrt n对称的。还有完全平方数。因此只要扫描1~\sqrt n -1的所有数将d和n/d作为约数加入到集合中,特判\sqrt n是否是n的约数。

vector<int> get_div(int n){
    vector<int> a;
    for(int i = 1;i <= n/i;i++){
        if(n%i==0){
            a.push_back(i);
            if(i!=n/i) a.push_back(n/i);
        }
    }
    sort(a.begin(),a.end());
    return a;
}

相关文章

  • 约数-试除法

    求N的正约数集合-试除法 若d>是一个约数那么也是一个约数。每个约数都是关于对称的。还有完全平方数。因此只要扫描1...

  • js 求解最大公约数和最小公倍数

    原理 最大公约数 两个数的最大公约数可以用辗转相除法.辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数...

  • 最大公约数

    短除法 辗转相除法 更相减损法 扩展:最小公倍数 = (a * b)/最大公约数

  • 求最大公约数的4种算法

    算法一:短除法 想法,采用短除法找出2个数的所有公约数,将这些公因子相乘,结果就是2个数的最大公约数。【找公因子,...

  • 计算两个数的最小公倍数和最大公约数

    辗转相除法求最小公倍数和最大公约数

  • 最大公约数

    一、辗转相除法1,循环除 2,迭代除 扩展:a,b最小公倍数=(ab最大公约数^2)a/最大公约数b/最大公约数=...

  • 笔试记录

    网易: 最大公约数,最小公倍数,素数的求法忘了 最大公约数: 辗转相除法: c++: ``` int main()...

  • 最大公约数与最小公倍数:辗转相除法

    已知两个数x和y,求x和y的最大公约数 暴力循环求解: 辗转相除法求解: 辗转相除法递归求解: 理解辗转相除法: ...

  • 最大公约数和最小公倍数

    最大公约数 一般用gcd(a,b)来表示a和b的最大公约数,而求解最大公约数常用欧几里得算法(即辗转相除法) 如果...

  • 辗转相除法——字符串处理

    辗转相除法 GCD:辗转相除法,求两个正整数的最大公约数。 gcd(m,n) = gcd(n,m mod n) [...

网友评论

    本文标题:约数-试除法

    本文链接:https://www.haomeiwen.com/subject/upojrktx.html