Pagini recente » Cod sursa (job #2692004) | Cod sursa (job #272498) | Cod sursa (job #1699605) | Cod sursa (job #2550496) | Cod sursa (job #2892178)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("light2.in");
ofstream fout("light2.out");
const int kM = 1 << 5;
int64_t n, ans;
int m, a[kM];
int64_t lcm(int64_t x, int64_t y) {
return x / __gcd(x, y) * y;
}
void solve(int pas, int64_t num, int cnt) {
if (pas == m) {
if (cnt % 2 == 1) {
ans += (n / num) * (1 << (cnt - 1));
} else if (cnt) {
ans -= (n / num) * (1 << (cnt - 1));
}
return;
}
solve(pas + 1, num, cnt);
num = lcm(num, a[pas]);
if (num <= n) {
solve(pas + 1, num, cnt + 1);
}
}
void testCase() {
fin >> n >> m;
for (int i = 0; i < m; ++i) {
fin >> a[i];
}
sort(a, a + m, greater<int>());
solve(0, 1, 0);
fout << ans << '\n';
}
int main() {
int tests = 1;
for (int tc = 1; tc <= tests; ++tc) {
testCase();
}
fin.close();
fout.close();
return 0;
}