Pagini recente » Cod sursa (job #2727614) | Cod sursa (job #1758145) | Cod sursa (job #1580928) | Cod sursa (job #1700521) | Cod sursa (job #682669)
Cod sursa(job #682669)
#include <cstdio>
int K, nr, i, j;
long long N, D[22], sol;
long long cmmdc(long long a, long long b)
{
long long r = a % b;
while (r)
{
a = b;
b = r;
r = a % b;
}
return b;
}
void back(long long t, int lvl, int p)
{
if (lvl == K) return;
back(t, lvl+1, p);
t = t * D[lvl] / cmmdc(t, D[lvl]);
if (p & 1) sol += N / t * (1<<(p-1));
else sol -= N / t * (1<<(p-1));
back(t, lvl+1, p+1);
}
int main()
{
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
scanf("%lld", &N);
scanf("%d", &K);
for (i=0; i<K; ++i)
scanf("%d", &D[i]);
back(1, 0, 1);
printf("%lld\n", sol);
return 0;
}