假设t[i]为x=y=i时可以看到的点数
考虑x<y的情况,如果可以看到,那么直线的斜率为y/x,且x,y互素,因为如果两者不互素,令d=gcd(x,y)>1,那么(x/d)/(y/d)这个点一定是之前可以看到的点,(x,y)就被遮住了
当x>y时,与x<y一样,是对称的
所以t[i]=t[i-1]+2*PHI[i],i=0时,t[i]=3
代码:
假设t[i]为x=y=i时可以看到的点数
考虑x<y的情况,如果可以看到,那么直线的斜率为y/x,且x,y互素,因为如果两者不互素,令d=gcd(x,y)>1,那么(x/d)/(y/d)这个点一定是之前可以看到的点,(x,y)就被遮住了
当x>y时,与x<y一样,是对称的
所以t[i]=t[i-1]+2*PHI[i],i=0时,t[i]=3
代码: