// C++ program to find prime factorization of a // number n in O(Log n) time with precomputation // allowed. #include "bits/stdc++.h" using namespace std; #define MAXN 1000001 // stores smallest prime factor for every number long long int spf[MAXN]; // Calculating SPF (Smallest Prime Factor) for every // number till MAXN. // Time Complexity : O(nloglogn) void sieve() { spf[1] = 1; for (long long int i=2; i getFactorization(long long int x) { vector ret; while (x != 1) { ret.push_back(spf[x]); x = x / spf[x]; } return ret; } // driver program for above function int main(int argc, char const *argv[]) { // precalculating Smallest Prime Factor sieve(); long long int n,i; long long int summ,mult,gsum; gsum=0; cin>>n; long long int a[n]; for(i=0;i>a[i]; } //cout << "prime factorization for " << x << " : "; // calling getFactorization function for(i=0;i p = getFactorization(a[i]); summ=0; mult=1; for (long long int j=p.size()-1; j>=0; j--) { mult=mult*p[j]; summ=summ+mult; } gsum=gsum+summ; } cout<