The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
출처: https://projecteuler.net/
600851475143의 소인수 중에서 가장 큰 수를 구하는 문제입니다.
루트값 까지만 계산하는 방법으로 시간 복잡도를 줄여 풀었습니다.
my solving
c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <iostream> #include <vector> using namespace std; typedef long long ll; vector<ll> getPrimeFactor(ll n) { vector<ll> ret; ll sqrtn = ll(sqrt(n)); for (ll i = 2; i <= sqrtn; i++) { while (n % i == 0) { n /= i; ret.push_back(i); } } if (n > 1) ret.push_back(n); return ret; } int main() { vector<ll> frimes = getPrimeFactor(600851475143); cout << frimes.back() << endl; system("pause"); return 0; } | cs |
'Algorithm, Data structure > Solved Algorithmic Problem' 카테고리의 다른 글
Project Euler #6 - Sum square difference (0) | 2016.06.11 |
---|---|
Project Euler #5 - Smallest multiple (0) | 2016.06.11 |
Project Euler #2 - Even Fibonacci numbers (0) | 2016.06.11 |
USACO 1.3 - Prime Cryptarithm (0) | 2016.06.11 |
USACO 1.3 - Barn Repair (0) | 2016.06.09 |