由一系列的公式推导,求n-sqrt(n)-sqrt(n/2).
对,我很喜欢数论......(妖魔鬼怪远离我妖魔鬼怪远离我
求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和。例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比较困难了。现在给你一个n,你需要求出有多少个[ 1 , n ]区间内的数字σ是偶数。
注:一个数字的σ指这个数的所有因子之和Input
输入包含T(T<=100)组数据,每一组只有一个数字n(1<=n<=10^12)
Output
输出样例号和一个数字,为所求答案。注意!两组输出之前没有空行。
Sample Input
4
3
10
100
1000
Sample Output
Case 1: 1
Case 2: 5
Case 3: 83
Case 4: 947
AC代码:
#include<bits/stdc++.h>
#define ll long long
const ll maxn=1e12+10;
using namespace std;
int main()
{
int t;
cin>>t;
int cnt=1;
while(t--)
{
ll n=0,sum=0;
cin>>n;
sum=(ll)sqrt(n*1.0)+(ll)sqrt(n*1.0/2);
printf("Case %d: %lld\n",cnt++,n-sum);
}
return 0;
}
加油!好好学(ง •_•)ง