欧拉计划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,意味着i是n的因数。所以我们就确定了其中一个质因数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;
}

浙公网安备 33010602011771号