题意:给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1) x 属于 [1,b] ,y属于[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k。给你的时间是 3000 MS。 0 < a <= b <= 100,000, 0 < c <= d <= 100,000, 0 <= k <= 100,000
解题思路:详见https://blog.csdn.net/lixuepeng_001/article/details/50577932
用线性筛的复杂度大致为为O(nlogn)
#include
#include
#include
#include
#define N 100007
using namespace std;
int mu[N],vis[N],prime[N];
void init()//获得莫比乌斯函数mu
{
int cnt=0;
//memset(vis,0,sizeof(vis));
mu[1]=1;
for(int i=2;i