LightOJ

来源:互联网 发布:澳洲 工程师 工资 知乎 编辑:程序博客网 时间:2024/06/05 23:03

题意:1~n (1 ≤ n ≤ e^12)中,因子和为偶数的有几个。
这里写图片描述

这里写图片描述

#include<cstdio>#include<cmath>using namespace std;typedef long long LL;LL n;/*在[1,n]中平方数或者是两倍的平方数的因子和为奇数(满足2的更高次幂也一定是2的倍数,不用重复计算)其中平方数有sqrt(n)个,两倍的平方数有sqrt(n/2)个例如[1,5]中平方数为1、4,2*平方数为4*/int main(){    int T,kase=0;    scanf("%d",&T);    while(T--)    {        scanf("%lld",&n);        LL ans=0;        ans+=(LL)sqrt(n/1.0);        ans+=(LL)sqrt(n/2.0);        ans=n-ans;        printf("Case %d: %lld\n",++kase,ans);    }    return 0;}