1 #include2 #include 3 #include 4 using namespace std; 5 int sum; 6 long long R; 7 bool pan(int a1,double a4) 8 { 9 int a2=floor(a4);10 if(a2!=a4)11 return 0;12 int a3=a1%a2;13 for(;a3;)14 {15 a1=a2;16 a2=a3;17 a3=a1%a2;18 }19 if(a2==1&&a1!=a2)20 return 1;21 return 0;22 }23 int main()24 {25 scanf("%lld",&R);26 for(int i=1;i<=sqrt(2*R);i++)27 if((2*R)%i==0)28 {29 for(int a=1;a<=sqrt((2*R)/(2*i));a++)30 if(pan(a,sqrt(((2*R)/i)-a*a)))31 sum++;32 if((2*R)/i!=i)33 for(int a=1;a<=sqrt(i/2);a++)34 if(pan(a,sqrt(i-a*a)))35 sum++; 36 }37 printf("%d\n",4*sum+4);38 }
这是个脑洞大开的数学题