func_code_string: #include <bits/stdc++.h>   using namespace std;   long long power(long long x, long long y, long long z) {     long long ret = 1;     while (y > 0) {       if (y & 1) ret = (ret * x) % z;       x = (x * x) % z;       y >>= 1;     }     return ret;   }   long long q;   map<long long, long long> getFactors(long long num) {     long long i;     map<long long, long long> answer;     for (i = 2; i * i <= num; i++) {       while (num > 1 && num % i == 0) {         answer[i]++;         num /= i;       }     }     if (num > 1) answer[num]++;     return answer;   }   int main() {     long long i, j, t;     scanf( %lld , &q);     ;     map<long long, long long> factors = getFactors(q);     long long sum = 0, xorVal = 0, flag = 0, ting;     for (auto it = factors.begin(); it != factors.end(); it++) {       long long temp = it->second;       sum += temp;     }     xorVal = factors.size();     cerr <<  sum           <<   ::   << sum <<   t           <<  flag           <<   ::   << flag <<   t           <<  xorVal           <<   ::   << xorVal <<   n ;     ;     if (sum == 2) {       cout <<  2  << endl;       return 0;     }     if (sum <= 1)       cout <<  1  << endl <<  0  << endl;     else {       long long answer = 1, cutter = 0;       for (auto it = factors.begin(); it != factors.end(); it++) {         long long siz = it->second;         for (j = 0; j < siz; j++) {           if (cutter >= 2) {             cout <<  1  << endl << answer << endl;             return 0;           }           answer = answer * (it->first);           cutter++;         }       }     }     return 0;   }   