Pagini recente » Cod sursa (job #2715910) | Cod sursa (job #3122710) | Cod sursa (job #2181450)
#include <fstream>
#define ll long long
using namespace std;
ifstream cin ("light2.in");
ofstream cout ("light2.out");
const int kmax = 23;
ll n, sol;
int k;
int v[kmax];
ll cmmdc(ll a, ll b) {
ll r;
while(b) {
r = a % b;
a = b;
b = r;
}
return a;
}
void Back(int ind, ll cmmmc, int put, bool ok) {
if(cmmmc > n)
return;
else if(ind == k + 1) {
if(ok)
sol += (put / 2) * (n / cmmmc);
else
sol -= (put / 2) * (n / cmmmc);
} else {
Back(ind + 1, cmmmc, put, ok);
Back(ind + 1, cmmmc * v[ind] / cmmdc(cmmmc, v[ind]), put * 2, 1 - ok);
}
}
int main() {
cin >> n >> k;
for(int i = 1; i <= k; i++)
cin >> v[i];
Back(1, 1, 1, 0);
cout << sol;
return 0;
}