题意:给定a,b,c,d,k
x属于[1 , c],y属于[1 , d],求满足gcd(x,y)=k的对数。其中和算相同。
解法一:不妨设c 那么假如y<=c/k,那么对数就是y从1到c/k欧拉函数的和。如果y>c/k,就只能从[ c/k+1 , d ]枚举,然后利用容斥。详见代码:
/*********************************************************
file name: hdu1695.cpp
author : kereo
create time: 2015年02月11日 星期三 18时08分43秒
*********************************************************/
#include
#include
#include
#include
#include
#include
解法二:莫比乌斯反演。
其中"设F(a,b,k)表示有多少组x≤a,y≤b,且Gcd(a,b)≥k"的"Gcd(a,b)>=k"应该是k | Gcd(x,y)。

/*********************************************************
file name: hdu1695.cpp
author : kereo
create time: 2015年02月12日 星期四 09时08分41秒
*********************************************************/
#include
#include
#include
#include
#include
#include