Untitled

public
6shootingstar9 Apr 10, 2025 Never 27
Clone
C++ paste1.cpp 45 lines (45 loc) | 713 Bytes
1
#include<bits/stdc++.h>
2
using namespace std;
3
const int MOD=1e9+7;
4
int f[10000010];
5
int n,K,L,R;
6
int gcd(int x,int y)
7
{
8
if(y==0)
9
{
10
return x;
11
}
12
return gcd(y,x%y);
13
}
14
int fun(int x,int y)
15
{
16
int res=1;
17
x=x%MOD;
18
while(y)
19
{
20
if(y%2)
21
{
22
res=1LL*res*x%MOD;
23
}
24
y/=2;
25
x=1LL*x*x%MOD;
26
}
27
return res;
28
}
29
int main()
30
{
31
cin>>n>>K>>L>>R;
32
int l=(L+K-1)/K;
33
int r=R/K;
34
for(int i=r;i>=1;i--)
35
{
36
int num=r/i-(l-1)/i;
37
f[i]=fun(num,n);
38
for(int j=i*2;j<=R;j+=i)
39
{
40
f[i]=(f[i]-f[j]+MOD)%MOD;
41
}
42
}
43
cout<<f[1];
44
return 0;
45
}