func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxN = 1000005;   int sp[maxN];   void seive() {     for (int i = 2; i <= 1000000; ++i) {       if (sp[i] != 0) continue;       for (int j = i; j <= 1000000; j += i) {         if (sp[j] == 0) sp[j] = i;       }     }   }   int nxtpow(int x) {     int p = 1;     while (p < x) p <<= 1;     return p;   }   int main() {     seive();     int n;     scanf( %d , &n);     int pow = 0;     int x = n;     int val = 1;     vector<int> pows;     while (x > 1) {       int p = sp[x];       int cnt = 1;       while (x > 1 && sp[x / p] == p) {         x /= p;         ++cnt;       }       x /= p;       pow = max(pow, nxtpow(cnt));       val *= p;       pows.push_back(cnt);     }     int ans = 0;     for (int x : pows) {       if (x != pow) {         ++ans;         break;       }     }     while (pow > 1) {       pow >>= 1;       ++ans;     }     printf( %d %d n , val, ans);     return 0;   }   