Pagini recente » Cod sursa (job #2323551) | Cod sursa (job #327392) | Cod sursa (job #3140837) | Cod sursa (job #1817947) | Cod sursa (job #552223)
Cod sursa(job #552223)
#include <stdio.h>
#define kmax 30
long long i, j, k, n, rez, s, nel, sf, x, r, cmmmc;
long long a[kmax];
long long cmmdc(long long q, long long w)
{
r=q%w;
while (r>0)
{ q=w; w=r; r=q%w; }
return w;
}
void gen(long long poz)
{
long long cmmmcan;
if (poz==k+1)
{
if (nel>0)
{
if (nel%2==0)
rez-=(1<<(nel-1))*(n/cmmmc);
else
rez+=(1<<(nel-1))*(n/cmmmc);
}
}
else
{
gen(poz+1);
cmmmcan=cmmmc;
cmmmc=(cmmmc*a[poz])/cmmdc(cmmmc,a[poz]); nel++;
gen(poz+1);
cmmmc=cmmmcan; nel--;
}
}
int main()
{
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
scanf("%lld",&n);
scanf("%lld",&k);
for (i=1;i<=k;i++)
scanf("%lld",&a[i]);
cmmmc=1;
gen(1);
printf("%lld",rez);
return 0;
}