题解:
显然当坐标不互质的时候
是可以看得见的
所以线性筛选欧拉函数
代码:
#include<bits/stdc++.h> using namespace std; const int N=80005; int n,ans,p[N],phi[N],prime[N]; void getphi() { phi[1]=1; for (int i=2;i<=n;i++) { if (!p[i]) { prime[++prime[0]]=i; phi[i]=i-1; } for (int j=1;j<=prime[0]&&i*prime[j]<=N;j++) { p[i*prime[j]]=1; if (i%prime[j]==0) { phi[i*prime[j]]=phi[i]*prime[j]; break; } else phi[i*prime[j]]=phi[i]*(prime[j]-1); } } } int main() { scanf("%d",&n); if (n==1){puts("1");return 0;} if (n==2){puts("3");return 0;} getphi(); for (int i=2;i<n;i++)ans+=phi[i]; ans*=2;ans+=3; printf("%d ",ans); }