// // Author: Harsh_Vasoya, DA-IICT // #include #define sync_off std::ios_base::sync_with_stdio(false); cin.tie(NULL); #define lli long long int #define hashmap unordered_map #define hashset unordered_set #define all(v) v.begin(),v.end() #define pb push_back #define pii pair #define mp make_pair #define F first #define S second #define si(n) scanf("%d",&n) #define sii(n,m) scanf("%d%d",&n,&m) #define slli(n) scanf("%lld",&n) #define forn(i,a,b) for(int i=a;i prime; void sieve(){ //complexity: O(nlog(logn)) int N=(int)1e6; bool *isp=new bool[N](); for(int z=2;z<=N;z++) { if(!isp[z]) { prime.pb(z); if(z*z>N) continue; for(int j=2*z;j<=N;j+=z) isp[j]=true; } } } lli factorise(lli n){ lli num=n; lli lastprime=-1; for(int i=0;i1) lastprime=num; } return lastprime; } int main() { sieve(); int n; si(n); lli ans=0; forn(i,0,n){ lli num; slli(num); lli moves = 0; lli total_pieces = 1; while(num>1){ lli x = factorise(num); moves += total_pieces; total_pieces = total_pieces*x; num /= x; } moves += total_pieces; ans += moves; } printf("%lld\n", ans); return 0; }