题目见 http://pan.baidu.com/s/1o6zajc2
此外不知道H-L<=10^5这个条件是干嘛的。。。。
#include <map>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 10001000
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
int mu[M],prime[1001001],tot;
bool not_prime[M];
map<int,long long> mu_sum;
long long n,d,l,r;
void Linear_Shaker()
{
int i,j;
mu[1]=1;
for(i=2;i<=10000000;i++)
{
if(!not_prime[i])
{
mu[i]=-1;
prime[++tot]=i;
}
for(j=1;prime[j]*i<=10000000;j++)
{
not_prime[prime[j]*i]=true;
if(i%prime[j]==0)
{
mu[prime[j]*i]=0;
break;
}
mu[prime[j]*i]=-mu[i];
}
}
for(i=1;i<=10000000;i++)
mu[i]+=mu[i-1];
}
long long Mu_Sum(int x)
{
if(x&