欧拉计划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;
}
本文作者:ChrisNg
本文链接:https://www.cnblogs.com/chrisng/p/15312276.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步