大意
求
g
c
d
(
a
,
b
)
=
a
x
o
r
b
gcd(a,b)=a\ xor\ b
gcd(a,b)=a xor b,
a
,
b
∈
[
1..
n
]
a,b\in[1..n]
a,b∈[1..n]的方案数
思路
手推思路见个人思考过程 题解:
代码
#include<cstdio>
using namespace std
;int n
,a
,b
,ans
;
inline int gcd(register int x
,register int y
){return y
?gcd(y
,x
%y
):x
;}
signed main()
{
scanf("%d",&n
);
for(register int c
=1;c
<=n
/2;c
++)
for(register int a
=c
*2;a
<=n
;a
+=c
)
if((a
-c
)==(a
^c
)) ans
++;
printf("%d",ans
);
}