比赛的时候看都没看到这道题,现在直接看题外加解题报告,感觉好简单啊
思维啊,思维啊,思维啊
#include<cstdio>
#include<cmath>
typedef long long ll;
ll power3(ll n)
{
ll ret=pow(n,1.0/3);
while(ret*ret*ret<n)
ret ++;
while(ret*ret*ret>n)
ret --;
return ret;
}
ll power2(ll n,ll i)
{
ll ret=pow(n/i,1.0/2);
while(ret*ret*i<n)
ret ++;
while(ret*ret*i>n)
ret --;
return ret;
}
int main()
{
ll n,id=0;
while(~scanf("%I64d",&n))
{
ll q3=power3(n);
ll ans=q3;
ll i,j,t;
for(i=1;i<=q3;i++)
{
t=n/(i*i);
ans += (t-i)*3;
ll q2=power2(n,i);
ans += (q2-i)*3;
for(j=i+1;j<=q2;j++)
{
t=n/(i*j);
ans += (t-j)*6;
}
}
printf("Case %I64d: %I64d\n",++id,ans);
}
return 0;
}