#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define int long long

signed main(){
    int N;
    cin >> N;
    vector<int> diviser;

    for(int i=1;i*i<=N;i++){
        if(N % i == 0){
            diviser.emplace_back(i);
            if(i*i != N) diviser.emplace_back(N/i);
        }
    }

    sort(diviser.begin(),diviser.end());

    if(diviser.size() == 2) cout << 1 << " " << 1 << endl;
    else {
        vector<bool> possible(diviser.size()-1,true);
        for(int i=possible.size()-1;i>=0;i--){
            if(!possible[i]) continue;
            for(int j=0;j<i;j++) {
                if(diviser[i] % diviser[j] == 0) possible[j] = false;
            }
        }

        int MIN = 0;
        for(int i=0;i<possible.size();i++) MIN += possible[i];

        cout << MIN << " " << diviser.size() - 1 << endl;
    }
}


