uva 12716 GCD XOR

来源:互联网 发布:windows注册表详解 编辑:程序博客网 时间:2024/06/04 19:30

#include <iostream>#include <math.h>#include <string.h>using namespace std;const int inf=3e7+10;const int maxn=3e7;int a[inf];int sto[inf];void init(){int ans; for (int i=1;i<=maxn/2;i++)//枚举因子,一个数的因子不会超过它本身的1/2,因此可以优化一下 { for (int j=i+i;j<=maxn;j+=i) { if (((j-i)^j)==i) {    sto[j]++;} }  }   for (int i=3;i<=maxn;i++)  sto[i]+=sto[i-1];  }  int main(){int n,ans=1;memset(sto,0,sizeof(sto));init();int t;cin>>t;while (t--){scanf("%d",&n);  printf("Case %d: %d\n",ans++,sto[n]);}return 0;}

原创粉丝点击