#include #include #include #include #include using namespace std; int help[999999]={0, 0, 2, 3, 6, 5, 9, 7, 14, 12, 15, 11, 20}; int inde[999999]={1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; /* help[1]=0 help[2]=2; help[3]=3; help[4]=6; help[5]=5; help[6]=9; help[7]=7; help[8]=14; help[9]=12; help[10]=15; help[11]=11; help[12]=20; */ int prime(int q) { int w=0, j; for(j=2; j<=q/2; j++) { if(q % j == 0) { w=1; break; } } return w; } int fn(int x) { int tmp; if(inde[x]!=0) return help[x]; if(prime(x)==0) return x; // MaxFact int maxch=-999, max, ch; for(int k=1; k<=x/2; k++) { if(x%k==0) { ch= (1+fn(k)) * (x/k); if( ch > maxch) { maxch = ch; max=k; } } } //MaxFact ends tmp=fn(max); help[x] = x/max + x/max *tmp ; inde[x] = 1; return help[x]; } int main() { int n, i; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } int S=0; for(i=0; i