#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
//    ifstream cin("input.txt");
//    ofstream cout("output.txt");
    ll tst = 1;
    while(tst--){
        ull res,n,i,j,k,lim;
        cin>>n;
        set<ull> st;
        res = n;
        lim = pow(n , 0.5);
        for(i =2;i<=lim;i++){
            k = 2;
            j= pow(i,k);
            for(;j<=n;){
                if(st.find(j)==st.end()){
                    //cout<<j<<endl;
                    res--;
                }
                st.insert(j);
                
                k++;
                j = pow(i,k);
            }
        }
        cout<<res<<endl;
    }
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main() {
	long long n;
	cin >> n;
	unordered_set<long long> us;
	long long counter = 0;
	for (long long i = 2; i <= sqrt(n); i++) {
		long long tmp = i * i;
		while (tmp <= n) {
			us.insert(tmp);
			tmp *= i;
		}
	}
	cout << n - us.size() << endl;
	return 0;
}
