你可以从别人那里汲取某些思想,但必须|

ChrisNg

园龄:4年4个月粉丝:6关注:4

欧拉计划003--最大质因数

欧拉计划003--最大质因数

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\)的最大质因数是多少?

在这道题目中,我用的方法是枚举来解题。首先编写一个判断是否素数的函数。例如如果isPrime(i)==true,意味着i为素数,同时n%i==0,意味着in的因数。所以我们就确定了其中一个质因数i,同时我们需要更新n=n/i,继续执行下面的操作。最后求解出来的结果为6857。

#include <iostream>
using namespace std;
bool isPrime(long long);

int main(){
    long long n = 600851475143;
    int A[20];
    int count = 0;
    for (long long i=2;i<n;i++){
        if (n%i==0&&isPrime(i)){
            A[count]=i;
            count++;
            n = n/i;
        }
    }
    A[count++]=n;
    cout<<"最大的数是"<<A[count-1]<<endl;
    return 0;
}

bool isPrime(long long n){
    for(int i=2;i<n;i++){
        if(n%i==0)
            return false;
    }
    return true;
}

本文作者:ChrisNg

本文链接:https://www.cnblogs.com/chrisng/p/15312276.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   ChrisNg  阅读(175)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起