func_code_string: #include <cstdio>   #include <algorithm>   #define ll long long int   using namespace std;   const int MAX = 1e7+10;   int t, c;   int ans[MAX];   int prime[MAX], pcount;   bool vis[MAX];   ll d[MAX], f[MAX];   void eular() {       for (int i = 1; i <= MAX; i++) ans[i] = MAX;       ans[1] = 1;       for (int i = 2; i < MAX; i++) {           if (!vis[i]) {               vis[i] = 1;               prime[pcount++] = i;               d[i] = f[i] = i + 1;               if (ans[i + 1] > i) ans[i + 1] = i;           }           for (int j = 0; j < pcount && (ll)prime[j] * i < MAX; j++) {               vis[prime[j] * i] = 1;               if (i % prime[j] == 0) {                   f[prime[j] * i] = f[i] * prime[j] + 1;                   d[prime[j] * i] = d[i] / f[i] * f[prime[j] * i];               } else {                   f[prime[j] * i] = f[prime[j]];                   d[prime[j] * i] = d[i] * f[prime[j] * i];               }               if (d[prime[j] * i] < MAX && ans[d[prime[j] * i]] > prime[j] * i) ans[d[prime[j] * i]] = prime[j] * i;               if (i % prime[j] == 0) break;           }       }   }   int main() {       eular();       scanf( %d , &t);       while(t--) {           scanf( %d , &c);           if (ans[c] != MAX) printf( %d n , ans[c]);           else printf( -1 n );       }       return 0;   }