#include<iostream> #include<cstdio> #include<vector> #include<algorithm> #include<queue> #include<string> #include<map> #include<cmath> #include<bitset> #include<set> #include<cstring> #include<cstdlib> #include<complex> #include<list> #include<sstream> #include<cassert> using namespace std; typedef pair<int,int> ii; typedef vector<int> vi; typedef pair<long long,long long> ll; typedef pair<int,long long> il; long long mod = 1000000007LL; long long large = 2000000000000000000LL; bitset<1000010> vis; vector<long long> primes; void sieve(long long n){ vis.set(); vis[0] = 0; vis[1] = 0; for(long long i = 2;i<=n;i++){ if(vis[i]){ for(long long j=i*i;j<=n;j+=i){ vis[j] = 0; } primes.push_back(i); } } } int main(){ sieve(1000000LL); int n; cin>>n; long long ans = 0LL; while(n--){ long long a; cin>>a; vector<long long> p; for(int i=0;i<(int)primes.size();i++){ if(primes[i]*primes[i]>a) break; if(a%primes[i]==0){ while(a%primes[i]==0){ p.push_back(primes[i]); a/=primes[i]; } } } if(a!=1LL) p.push_back(a); long long temp = 1; for(int i=0;i<(int)p.size();i++){ temp*=p[i]; temp++; } ans+=temp; } cout<<ans<<endl; return 0; }