poj 3090 Visible Lattice Points
#include<iostream> //先打表,不然TLE
using namespace std;
int gcd(int n,int m)
{
int r;
if(n<m)swap(n,m);
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
return n;
}
int g[1002][1002],res[1002];
int main()
{
for(int i=1;i<=1000;++i)
for(int j=1;j<=1000;++j)
if(gcd(i,j)==1)
g[i][j]=1;
for(int k=1;k<=1000;++k)
{
int s=0;
for(int i=1;i<=k;++i)
for(int j=i+1;j<=k;++j)
if(g[i][j])
s++;
res[k]=2*s+3;
}
int t,n;
cin>>t;
for(int c=1;c<=t;++c)
{
cin>>n;
printf("%d %d %d\n",c,n,res[n]);
}
return 0;
}