#include using namespace std; typedef long long int ll; typedef vector vi; typedef vector vl; typedef pair ii; typedef vector vii; typedef pair pll; typedef vector vll; typedef pair tri; typedef vector viii; #define fi(i,a,b) for(auto i=a;i=b;i--) #define pb push_back #define mp make_pair #define ss second #define ff first #define sz(a) a.size() #define sc(x) scanf("%d", &x) #define sc2(x, y) scanf("%d %d", &x, &y) #define sc3(x) scanf("%s", x) #define sc4(x) scanf("%lld", &x) #define sc5(x, y) scanf("%lld %lld", &x, &y) #define all(a) a.begin(), a.end() #define mse(a, x) memset(a, x, sizeof(a)) #define mod 1000000007 #define DREP(a) sort(all(a)); a.erase(unique(all(a)),a.end()); #define INDEX(arr,ind) (lower_bound(all(arr),ind)-arr.begin()) #define DEBUG 1 #define ok if(DEBUG) #define trace1(x) ok cerr << #x << ": " << x << endl; #define trace2(x, y) ok cerr << #x << ": " << x << " | " << #y << ": " << y << endl; #define trace3(x, y, z) ok cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl; #define trace4(a, b, c, d) ok cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " \ << #d << ": " << d << endl; #define trace5(a, b, c, d, e) ok cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " \ << #d << ": " << d << " | " << #e << ": " << e << endl; #define trace6(a, b, c, d, e, f) ok cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " \ << #d << ": " << d << " | " << #e << ": " << e << " | " << #f << ": " << f << endl; int main() { vl p = {2}; int temp; for(ll i=3;i<1000000;i+=2) { temp = 1; for(vl::iterator j=p.begin(); j < p.end() && *j**j <= i;j++) { if(i%*j == 0) { temp = 0; break; } } if(temp == 1) { p.pb(i); } } int n; sc(n); ll res = 0, x; while(n--) { sc4(x); res += x; for(vl::iterator i = p.begin(); i < p.end() && x > 1; i++) { while(x%*i == 0) { x /= *i; res += x; } } if(x > 1) { res++; } } printf("%lld\n", res); return 0; }