#include #pragma GCC optimize("Ofast") #pragma GCC target("avx") #define ll long long using namespace std; int n,cnt=0; ll f[1000005],p[100005]; ll t[100005]; unordered_map mp; inline ll max(ll a,ll b) {return a>b?a:b;} int main (){ int i,l; ll j; f[1]=1; for (i=1;i<=1000000;i++) {for (j=i+i;j<=1000000;j+=i) {f[j]=max(f[j],f[i]*(j/i)+1);} } ll x,ans=0; scanf ("%d",&n); for (i=1;i<=n;i++) {cnt=0;scanf ("%lld",&x); for (j=1;j*j<=x;j++) {if (x%j==0) {p[++cnt]=j; if (j*j!=x) p[++cnt]=x/j; } } sort(p+1,p+cnt+1); for (j=1;j<=cnt;j++) {if (p[j]<=1000000) {t[j]=f[p[j]];continue;} if (mp.find(p[j])!=mp.end()) {t[j]=mp[p[j]];continue;} t[j]=p[j]+1; for (l=1;l