Largest prime factor
Problem 3
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
source link: https://projecteuler.net/problem=3
The time comlexity of my last solution is too large.
I think the shink the size of iteration condition number will optimize that.
Here is my original code:
1 #include <iostream> 2 #include <vector> 3 #include <string> 4 #include <cmath> 5 #include <iostream> 6 7 using namespace std; 8 9 int main() 10 { 11 long long int const size = 600851475143; 12 vector<int> pr; 13 pr.push_back(2); 14 int maxPr = 2; 15 for (long int i = 3; i < sqrtl(size); i++) { 16 bool isPr = true; 17 for (long int cnt = 1; pr[cnt] < sqrtl(pr.back()); cnt++) { 18 if (i % pr[cnt] == 0) { 19 isPr = false; 20 break; 21 } 22 } 23 24 if (isPr) { 25 pr.push_back(i); 26 if (size % i == 0) { 27 maxPr = i; 28 cout << maxPr << endl; 29 } 30 31 } 32 33 return 0; 34 } 35 }
时间: 2024-10-22 22:22:50