Pagini recente » Cod sursa (job #793832) | Cod sursa (job #1118900) | Cod sursa (job #1073276) | Cod sursa (job #2867686) | Cod sursa (job #1237936)
#include<cstdio>
#define ll long long
using namespace std;
int k,i,p,a[25],b[25];
ll n,rez,cmmmc[25];
ll Euclid(ll a, ll b)
{ while(b) {ll r=a%b; a=b; b=r;};
return a;
}
int main()
{ freopen("light2.in","r",stdin); freopen("light2.out","w",stdout);
scanf("%lld%d", &n,&k);
for(i=1;i<=k;++i) scanf("%d",&a[i]);
p=1; cmmmc[0]=1;
while(p)
{ ++b[p];
if(b[p]<=k)
{ cmmmc[p]=(a[b[p]]/Euclid(a[b[p]],cmmmc[p - 1]))*cmmmc[p-1];
if(cmmmc[p]<=n)
{ ll t=(n/cmmmc[p])*(1LL<<(p-1));
if(p%2) rez+=t; else rez-=t;
b[p+1]=b[p];
++p;
}
}
else --p;
}
printf("%lld\n",rez);
return 0;
}