美文网首页
第三日 最大质因数

第三日 最大质因数

作者: 刘阿斌 | 来源:发表于2017-03-05 17:06 被阅读36次

projectEuler第三问:
13195的质因数是5,7,13和29。
600851475143的最大质因数是多少?

Haskell:

primes (x:xs) = x:primes [m|m<-xs,m `mod` x /= 0]
findBiggestFactor n primes
    | factor==n = n
    | otherwise = findBiggestFactor (n `div` factor) restPrimes
        where restPrimes@(factor:rest) = dropWhile (\p->n `mod` p /=0) primes
answer = findBiggestFactor 600851475143 (primes [2..])

_ 顺便鄙视一下c++:

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include "util.h"
using namespace std;
const unsigned long long NB= 317584931803ULL;
long ProchainDiviseur(const unsigned long long& p_nb, const vector<long> p_nbPremiers){
    long nb= 0;
    for (int i= 0; i != p_nbPremiers.size() && nb == 0; ++i){
        if (p_nb % p_nbPremiers[i] == 0)
            nb= p_nbPremiers[i];
        }
    return nb;
}
long LargestPrimeFactor(const unsigned long long& p_nb){
    long largestPrimeFactor= 0;
    unsigned long long nbEnCours= NB;
    vector<long> nbPremiers= ConstruireNbPremiers((int)sqrt((double)p_nb / 2));
    long facteurPremierEnCours= 0;
    do{
        facteurPremierEnCours= ProchainDiviseur(nbEnCours, nbPremiers);
        if (facteurPremierEnCours != 0){
            nbEnCours/= facteurPremierEnCours;
        }
        if (facteurPremierEnCours > largestPrimeFactor)
            largestPrimeFactor= facteurPremierEnCours;
    }while (facteurPremierEnCours != 0);
    return largestPrimeFactor;
}
int main(){
    cout << LargestPrimeFactor(NB) << '\n';
    return 0;
}

相关文章

  • 第三日 最大质因数

    projectEuler第三问:13195的质因数是5,7,13和29。600851475143的最大质因数是多少...

  • 欧拉计划3 (最大质因数)

    题目:13195的所有质因数为5、7、13和29。600851475143最大的质因数是多少? Java: pyt...

  • 《分解质因数》教学反思

    分解质因数是在因数和倍数以及能被2、5、3整除的数的特征的基础上进行教学的。分解质因数是求最大公约数、最小公...

  • 分解素因数——1. 质因数的个数

    质因数的个数 题目描述 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=22235,共有...

  • 6. 质因数的个数

    题目描述 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=22235,共有5个质因数。 ...

  • 质因数分解

    题目:求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=22235,共有5个质因数。 x(...

  • 育才少儿真题-最大质因数

    质数是数论里最重要的,少儿班考试或数学竞赛几乎是必考的,今天介绍两道求最大质因数的真题。 题目①:11×11×11...

  • 质数因数的个数

    求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。 解...

  • 辅导笔记(4):质因数分解

    // 把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。 //输入样例:36 //输出:3...

  • 分解质因数和应用

    分解质因数是什么分解质因数就是将一个合数分解成多个质数相乘的形式,这就是分解质因数。我举个最简单的例子,比如说4它...

网友评论

      本文标题:第三日 最大质因数

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