显示原始代码
#include <stdio.h>
#include <stdlib.h>
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))
int gcd(unsigned a, unsigned b) {
for (unsigned i = max(a, b); i >= 1; i--)
if ((a % i == 0) && (b % i == 0))
return i;
}
int main() {
unsigned n, nSatisfy = 0;
scanf("%u", &n);
for (unsigned a = 1; a <= n; a++)
for (unsigned b = a; b <= n; b++)
if (gcd(a, b) == (a ^ b))
nSatisfy++;
printf("%u", nSatisfy);
return 0;
}