GCD等于XOR GCD XOR uva12716

发布时间 2023-04-07 02:48:39作者: towboat

给定一个数字n,如样例所示格式输出满足1<=b<=a<=n且gcd(a,b)==a xor b的(a,b)二元组个数

 

#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
 const int N=3e7+4;
 int n;
 
 int A[N];
 
void init(int top){
	int i,j ;
     for(i=1;i<=top;i++)
         for(j=i*2;j<=top;j+=i){
         	int y=j-i;
         	if((j^y)==i) A[j]++;
         }
 }   
 
 int main(){
 	init(3e7);
 	
	 int x,i,tes,cas=0;
	 scanf("%d",&tes);
	 for(i=2;i<=3e7;i++) A[i]+=A[i-1];
	 while(tes--){
	 	scanf("%d",&x);
	 	printf("Case %d: %d\n",++cas,A[x]);
	 }
 }