#include <stdio.h> bool isPrime[1000010]; int primes[100000]; int nPrime; void Prework(){ for(int i=0; i<1000010; i++) isPrime[i] = true; isPrime[0] = isPrime[1] = false; for(int i=2; i*i<1000010; i++){ if(!isPrime[i]) continue; for(int j=i*i; j<1000010; j+=i) isPrime[j] = false; } for(int i=2; i<1000010; i++){ if(isPrime[i]){ primes[nPrime] = i; nPrime++; } } } long long Work(long long K){ long long ans = 1; for(int i=0; i<nPrime; i++){ while(K % primes[i] == 0){ K /= primes[i]; ans *= primes[i]; ans++; } if(K == 1) break; } if(K > 1){ ans *= K; ans++; } return ans; } int main(){ Prework(); int N; long long K; long long ans = 0; scanf("%d", &N); for(int i=0; i<N; i++){ scanf("%lld", &K); ans += Work(K); } printf("%lld\n", ans); return 0; }