题目VJ链接:https://vjudge.net/problem/UVA-11426
题目大意:
求这个
G=0;
for(i=1;i<N;i++)
for(j=i+1;j<=N;j++)
{
G+=gcd(i,j);
}
\(1<N<4000001\)
思路:
这是一个计算贡献的题,首先考虑两个数\(a,b\)互质,那么\(GCD\left( a,b\right)=1 \),\(GCD\left( 2a,2b\right)=2 \),以此类推即可求出答案。
首先打欧拉函数表算出与\(x\)互质的数的个数,然后\(x*2\)这样推下去,详见代码.
AC代码
1 |
|