题目来源:https://vjudge.net/problem/UVA-11426
【题意】
求在1-n之间所有任意两个数的的最大公因数的和。
【思路】
做完这道题,依旧感觉头脑懵懵的,看了好多篇博客方才看懂了这道题的解法,因为之前做过几道数论题,关于素数的比较多,这到题因为最大公因数就自然而然的想到了素数筛法,一直在找所谓的规律。最后终于崩溃了。。。
便搜了博客慰藉我不安的心灵,但是很多博客我发现一个共同的优点,写的让我看不懂,这就比较厉害了。终于,被我发现了一篇特别接地气的博文,此处为链接:http://www.cnblogs.com/staginner/archive/2012/10/29/2745135.html,然后接下来,就是我的叙述和理解。
因为让求的1-n区间里任两个数的最大公因数之和,所以假设gcd(n,m)=z,在这里,因为n和m的范围都是超级大,所以,不能枚举n,m,但是可以枚举m,z,或者n,z。
具体思路是:假设gcd(x,y)=1,那么当执行到x,y的时候,最后的和都要加1,那么相应的,执行到2x,2y时,最后的和都要加2,以此类推,执行到
GCD - Extreme (II) (数论,欧拉函数)
最新推荐文章于 2022-08-21 18:39:33 发布