Pagini recente » Cod sursa (job #1749059) | Cod sursa (job #2001954) | Cod sursa (job #69869) | Cod sursa (job #1682640) | Cod sursa (job #541641)
Cod sursa(job #541641)
#include<stdio.h>
long long N,K,v[203],q,rez;
inline long long euc(long long a,long long b)
{
if(b==0) return a;
else return euc(b,a%b);
}
inline long long cmmmc(long long a,long long b)
{
return a*b/euc(a,b);
}
inline void desc(long long x)
{
long long k=1;
long long S=1;
long long P=1;
q=0;
while(x)
{//printf("%d",x%2);
if(x%2==1)
{++q;
if(q==1)
S=v[k];
else
S=cmmmc(S,v[k]);
}
x=x/2;
++k;
}
if(q%2==1)
rez+=(N/S)*(1<<(q-1));
else rez-=(N/S)*(1<<(q-1));
}
int main()
{
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
scanf("%lld%lld",&N,&K);
for(int i=1;i<=K;++i)
scanf("%lld",&v[i]);
for(int i=1;i<=(1<<K)-1;++i)
{
desc(i);
}
printf("%lld\n",rez);
}