Edited the prime factorization function of 69 so it is quick now
This commit is contained in:
@@ -35,27 +35,31 @@ vector<int> sieve(int n){
|
||||
return result;
|
||||
}
|
||||
|
||||
vector<int> prime_terms(int n, vector<int> primes = vector<int>()){
|
||||
if(primes.empty()){
|
||||
primes = sieve(n);
|
||||
}
|
||||
|
||||
vector<int> prime_terms(int n){
|
||||
vector<int> result;
|
||||
|
||||
for(int p : primes){
|
||||
if(p > n){
|
||||
break;
|
||||
if(n % 2 == 0){
|
||||
result.push_back(2);
|
||||
|
||||
while(n % 2 == 0){
|
||||
n /= 2;
|
||||
}
|
||||
}
|
||||
|
||||
if(n % p == 0){
|
||||
result.push_back(p);
|
||||
for(int i = 3; i <= sqrt(n); i += 2){
|
||||
if(n % i == 0){
|
||||
result.push_back(i);
|
||||
|
||||
while(n % p == 0){
|
||||
n /= p;
|
||||
while(n % i == 0){
|
||||
n /= i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(n > 2){
|
||||
result.push_back(n);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -76,7 +80,7 @@ int main(){
|
||||
|
||||
for(size_t i = 2; i < n_phi.size(); ++i){
|
||||
if(n_phi[i] == 0){
|
||||
auto terms = prime_terms(i, primes);
|
||||
auto terms = prime_terms(i);
|
||||
float acc = 1;
|
||||
|
||||
for(int t : terms){
|
||||
|
||||
Reference in New Issue
Block a user