Solution
当
表示满足
的
个数
假设没有任何限制,那么
可以表示所有数
所以
可以表示
的
个数
Code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int T,i,j;
ll ans,f[60],n;
int main(){
scanf("%d",&T);
for (;T--;){
scanf("%lld",&n);
ans=n-1;
for (i=59;i>1;i--){
f[i]=pow(n,1.0/i)-1;
for (j=i+i;j<60;j+=i) f[i]-=f[j];
ans-=f[i];
}
printf("%lld\n",ans);
}
}