Pagini recente » Cod sursa (job #2849320) | Cod sursa (job #1535569) | Cod sursa (job #2153567) | Cod sursa (job #1627963) | Cod sursa (job #1344483)
#include<fstream>
#define ll long long
using namespace std;
ifstream f("light2.in"); ofstream g("light2.out");
int k,i,p,d[25],x[25];
ll n,nr,mc[25];
ll Euclid(ll a, ll b)
{ while(b) {ll r=a%b; a=b; b=r;};
return a;
}
int main()
{ f>>n>>k;
for(i=1;i<=k;++i) f>>d[i];
p=1; mc[0]=1;
while(p)
{ ++x[p];
if(x[p]<=k)
{ mc[p]=(d[x[p]]/Euclid(d[x[p]],mc[p - 1]))*mc[p-1];
if(mc[p]<=n)
{ ll t=(n/mc[p])*(1LL<<(p-1));
if(p%2) nr+=t; else nr-=t;
x[p+1]=x[p];
++p;
}
}
else --p;
}
g<<nr<<'\n'; g.close(); return 0;
}