Pagini recente » Cod sursa (job #971321) | Cod sursa (job #2204005) | Cod sursa (job #1902645) | Cod sursa (job #22221) | Cod sursa (job #541678)
Cod sursa(job #541678)
#include<stdio.h>
#define ll long long
ll n,v[29],rez;
int k;
ll cmmmc(ll a,ll b)
{
ll aux,sol=a*b;
while(a%b)
{
aux=b;
b=a%b;
a=aux;
}
return sol/b;
}
void verif(int biti,ll val)
{
ll r=n/val;
if(biti&1)
rez+=r*(1<<(biti-1));
else
rez-=r*(1<<(biti-1));
}
void back(int poz,int bit,ll val)
{
if(poz==k+1 || val>n)
return ;
ll cval=cmmmc(val,v[poz]);
verif(bit+1,cval);
back(poz+1,bit+1,cval);
back(poz+1,bit,val);
}
int main ()
{
int i;
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
scanf("%lld%d",&n,&k);
for(i=1;i<=k;i++)
scanf("%lld",&v[i]);
back(1,0,1);
printf("%lld\n",rez);
return 0;
}