数学题……
[HAOI2008]圆上的整点 C++代码实现:
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
long long n,ans;
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
void check(long long x)
{
for(long long i=1;i*i<=x;i++)
{
long long j=sqrt(x-i*i)+0.1;
if(i>=j) break;
if(i*i+j*j==x&&gcd(i,j)==1)
ans++;
}
}
int main()
{
cin>>n;
n<<=1;
for(long long i=1;i*i<=n;i++)
{
if(n%i!=0) continue;
check(i);
if(i*i!=n) check(n/i);
}
cout<<ans*4+4;
}