bzoj2190

题解:

显然当坐标不互质的时候

是可以看得见的

所以线性筛选欧拉函数

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,ans,p[N],phi[N],prime[N];
void getphi()
{
phi[]=;
for (int i=;i<=n;i++)
{
if (!p[i])
{
prime[++prime[]]=i;
phi[i]=i-;
}
for (int j=;j<=prime[]&&i*prime[j]<=N;j++)
{
p[i*prime[j]]=;
if (i%prime[j]==)
{
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
else phi[i*prime[j]]=phi[i]*(prime[j]-);
}
}
}
int main()
{
scanf("%d",&n);
if (n==){puts("");return ;}
if (n==){puts("");return ;}
getphi();
for (int i=;i<n;i++)ans+=phi[i];
ans*=;ans+=;
printf("%d\n",ans);
}
上一篇:吴裕雄--天生自然Android开发学习:1.2.1 使用Eclipse + ADT + SDK开发Android APP


下一篇:sql 存储过程命名规范