// Miroslaw #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef vector VI; #define REP(i,n) for(int i=0;i<(n);i++) #define FOR(i,a,b) for(int i=(a);i<=(b);i++) #define FORD(i,a,b) for(int i=(a);i>=(b);i--) #define FOREACH(i,c) for(__typeof((c).begin())i = (c).begin();i!=(c).end(); ++i) int cond = 1; #define DB(X) {if(cond){cerr<<"Line:"<<__LINE__<<", "<<#X<<" = "< split(long long n) { vector v; int sq = sqrt(n); int i = 0; while (i < primes.size() && primes[i] <= sq) { while (n % primes[i] == 0) { n /= primes[i]; v.push_back(primes[i]); } ++i; } if (n != 1) { v.push_back(n); } return v; } vector pr; vector primes; }; PrimeProvider pr(1000123); long long solve(long long x) { auto tmp = pr.split(x); LL r = 1; LL mno = 1; FORD(i, tmp.size() - 1, 0) { mno *= tmp[i]; r += mno; } return r; } int main() { int T; scanf("%d", &T); long long r = 0; REP(i, T) { long long x; scanf("%lld", &x); r += solve(x); } printf("%lld\n", r); return 0; }