#include #include using namespace std; long long int arr[1000000]; long long int getDivisior(long long int n){ if(n%2==0){ return 2; } long long int i = 3; for(i=3;i<=sqrt(n)+1;++i){ if(n%i==0){ return i; } } return -1; } long long int val(long long int n){ if(n<1000000){ return arr[n]; } else { long long int div = getDivisior(n); if(div==-1){ // no is prime return n+1; } else { long long tmp; tmp = n; //arr[i] = tmp; div = getDivisior(tmp); tmp += val(tmp/div); return tmp; } } } int main(){ int n; cin >> n; arr[0] = 1; arr[1] = 1; arr[2] = 3; arr[3] = 4; long long int i,div,tmp; for(i=4;i<1000000;i++){ div = getDivisior(i); if(div==-1){ // no is prime arr[i] = i+1; } else { tmp = i; arr[i] = tmp; div = getDivisior(tmp); arr[i] += arr[tmp/div]; } } long long int res = 0; while(n--){ long long int a,s; cin >> a; s = val(a); //cout << "f("<