Pagini recente » Cod sursa (job #2175084) | Cod sursa (job #1947702) | Cod sursa (job #489478) | Cod sursa (job #1314081) | Cod sursa (job #2180159)
#include <bits/stdc++.h>
using namespace std;
int k;
bool ok;
int a[25];
long long Sol;
long long n;
set <int> S;
inline void back(int nr, int j, long long x){
if(x > n) return ;
if(nr > 0){
if(nr % 2 == 1){
Sol = Sol + (1 << (nr - 1)) * (n / x);
}
else{
Sol = Sol - (1 << (nr - 1)) * (n / x);
}
}
for(int i = j; i <= k ; ++i)
back(nr + 1, i + 1, x * a[i]);
}
int main(){
freopen("light2.in", "r", stdin);
freopen("light2.out", "w", stdout);
scanf("%lld", &n);
scanf("%d", &k);
int x;
for(int i = 1; i <= k ; ++i){
scanf("%d", &x);
if(S.find(x) == S.end()) S.insert(x);
else S.erase(x);
}
k = 0;
// if(S.find(1) != S.end()) ok = 1, S.erase(1), Sol = n;
for(auto it : S)
a[++k] = it;
back(0, 1, 1);
printf("%lld", Sol);
return 0;
}