#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;
}