Pagini recente » Cod sursa (job #3250893) | Cod sursa (job #2317891) | Cod sursa (job #258435) | Cod sursa (job #2496092) | Cod sursa (job #2240342)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("light2.in"); ofstream fout ("light2.out");
typedef long long i64;
const int kmax = 22;
int k;
i64 n, ans = 0;
int v[kmax + 1];
int gcd (i64 a, int b) {
while (b > 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
void bck (int pos, i64 d, int cnt) {
if (d > n)
return ;
if (pos == k) {
if (cnt > 0) {
if (cnt == 1)
ans += n / d;
else if (cnt % 2 == 0)
ans -= 2 * n / d;
else
ans += 2 * n / d;
}
return ;
}
bck(pos + 1, d, cnt);
bck(pos + 1, d * v[pos] / gcd(d, v[pos]), cnt + 1);
}
int main () {
fin >> n >> k;
for (int i = 0; i < k; ++ i) {
fin >> v[i];
}
bck(0, 1, 0);
fout << ans << "\n";
fin.close();
fout.close();
return 0;
}