#include #define fi first #define se second using namespace std; long long res = 0LL; unordered_map mapa; vector P; inline void rek(long long n) { if(mapa.count(n)) return ; long long curr = 0LL; for(auto s : P ) { if( n % s != 0LL) continue; rek(n/s); curr = max(curr, mapa[n/s] * s + 1); } mapa[n] = curr; // cerr<>n; long long N = n; P.clear(); for(long long i = 2; i * i <= n ;i++) { if(N%i == 0) P.push_back(i); while(N%i == 0) N/=i; } if(N>1) P.push_back(N); rek(n); res += mapa[n]; } int main() { int q; cin>>q; while(q--) solve(); cout<