尤拉計劃003--最大質因數
阿新 • • 發佈:2021-09-19
尤拉計劃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<<"\n最大的數是"<<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; }