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;
}

  

posted on 2011-07-22 20:38  sysu_mjc  阅读(154)  评论(0编辑  收藏  举报

导航