• 欧拉计划第3题题解


    Largest prime factor

    The prime factors of 13195 are 5, 7, 13 and 29.

    What is the largest prime factor of the number 600851475143 ?

    最大质因数

    13195的所有质因数为5、7、13和29。

    600851475143最大的质因数是多少?

    解题思路

    分解质因数的算法是 (O( sqrt{n} )) 的算法。

    求一个数 (a) 的质因数,可以从 (2) 开始到 (sqrt{n}) 去枚举每一个数 (i),然后只要 (a) 能够被 (i) 整除则一直除 (i)
    循环结束的时候如果 (a) 没有被除尽(即:(a) 不为 (1)),则这个没有被除尽的部分就是最后一个 (a) 的质因数。

    我们可以按照这种方案求解 (600851475143) 的最大的那个质因数。

    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 100010;
    long long cal(long long a) {
        long long res, b = sqrt(a);
        for (long long i = 2; i <= b; i ++) {
            if (a % i == 0) {
                res = i;
                while (a % i == 0) a /= i;
            }
        }
        if (a != 1) res = a;
        return res;
    }
    int main() {
        cout << cal(600851475143LL) << endl;
        return 0;
    }
    

    得到答案为 (6857)

  • 相关阅读:
    day10
    day 9
    day 8
    flex布局
    简单的todolist的demo
    JS中数组与对象的遍历方法实例小结
    css中animation和@keyframes 动画
    form表单相关
    Restful API接口规范
    什么是接口文档,如何写接口,有什么规范?
  • 原文地址:https://www.cnblogs.com/quanjun/p/12322620.html
Copyright © 2020-2023  润新知