题目大意:
大意很好理解,就是求和
![](http://img.e-com-net.com/image/info8/76ca60e8e70f4dc183fec2386b0e5588.jpg)
其中 lcm(i, j) 表示整数 i 和 j 的最小公倍数,结果模上 2^32
大致思路:
这个题和SPOJ 5971很像 可以先看看 SPOJ 5971题解
这答题我们先把需要求的项列出来得到下面这个样子:
lcm(1, 2) lcm(1, 3) lcm(1, 4) .... lcm(1, n)
lcm(2, 3) lcm(2, 4)..... lcm(2, n)
lcm(3, 4)..... lcm(3, n)
...... lcm(n - 1, n)
很明显求和式可以转变为:
![Light OJ 1375 LCM Extreme 欧拉函数 (或 莫比乌斯反演 ?)_第1张图片](http://img.e-com-net.com/image/info8/8b84b5fb5e51448880bc575b2e4afe4e.jpg)
这样子就很好求了, 每次求出 sigma(lcm( j , k), 1 <= j <= k)之后将结果求和就是要的结果,而且这答题中相比SPOJ 5971来说要简单一点 (少一项特殊的勉强算简单吧)
最终共识SPOJ 5971的题解里写过了~
代码如下:
Result : Accepted Memory : 60280 KB Time : 848 ms
/*
* Author: Gatevin
* Created Time: 2014/8/4 13:32:22
* File Name: test.cpp
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include