Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define isz(x) int(x.size())
- #define all(x) x.begin(),x.end()
- #define ll long long
- #define pii pair<int,int>
- #define fi first
- #define se second
- #define isz(x) int(x.size())
- #define ull unsigned long long
- #define vi vector<int>
- #define vll vector<ll>
- #define vch vector<char>
- #define vvch vector<vch>
- #define vvi vector<vector<int>>
- #define vvvi vector<vvi>
- #define vvll vector<vector<ll>>
- #define vpii vector<pair<int,int>>
- #define vvpii vector<vpii>
- #define forn(i,n) for(int i=0;i<(int)n;++i)
- #define pb push_back
- using namespace std;
- const int UNDEF = -1;
- const int MOD = 1e9 + 7;
- const int INF = 1e9;
- ll solve(ll R,vll& p){
- int N=isz(p);
- ll ans=0;
- for(int mask=1;mask<(1<<N);++mask){
- ll bits=0,mult=1;
- for(int j=0;j<N;++j){
- if(mask&(1<<j)){
- if(1.0L*mult*p[j]>R){
- mult=R+1;
- break;
- }
- mult*=p[j];
- bits++;
- }
- }
- if(bits&1) ans+=R/mult;
- else ans-=R/mult;
- }
- return ans;
- }
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
- //freopen("input.txt", "rt", stdin);
- //freopen("output.txt", "wt", stdout);
- ll L,R,N;
- cin>>L>>R>>N;
- vll p(N);
- forn(i,N) cin>>p[i];
- p.erase(unique(all(p)),p.end());
- cout<<solve(R,p)-solve(L-1,p);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement