Pagini recente » Cod sursa (job #3162808) | Cod sursa (job #1244855) | Cod sursa (job #716894) | Cod sursa (job #2134959) | Cod sursa (job #2241696)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("light2.in");
ofstream fout("light2.out");
int d[25],v[25];
long long int n,ans;
int k;
long long int GCD(long long int a, long long int b)
{
int r;
while (b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
long long int LCM(long long int a, long long int b)
{
return a * b / (GCD(a, b));
}
void BKT(int i, int smn, long long int lcm)
{
ans += (1LL << (i - 2)) * smn * (n / lcm);
if (i <= k)
{
for (v[i] = v[i - 1] + 1;v[i] <= k;v[i]++)
BKT(i + 1, -1 * smn, LCM(lcm, d[v[i]]));
}
}
int main()
{
fin >> n >> k;
for (int i = 1;i <= k;i++)
fin >> d[i];
BKT(1, -1, 1);
fout << ans << '\n';
return 0;
}