Pagini recente » Cod sursa (job #772256) | Cod sursa (job #2784146) | Cod sursa (job #2951415) | Cod sursa (job #1632484) | Cod sursa (job #543282)
Cod sursa(job #543282)
# include <fstream>
# include <iostream>
# define DIM 4200000
using namespace std;
int K;
long long N, sol, v[DIM];
void read ()
{
ifstream fin ("light2.in");
fin>>N>>K;
long long x;
for(int i=0;i<K;++i)
{
fin>>x;
v[(1<<i)]=x;
}
}
long long cmmdc(long long x,long long y)
{
long long r;
do{
r=x%y;
x=y;
y=r;
}
while (r);
return x;
}
void solve ()
{
int ho=1<<K, nt, nr, uj, s;
for(int i=1;i<ho;++i)
{
s=-1;
nt=nr=0;
for(int j=0;(1<<j)<=i;++j)
if ((1<<j)&i)
{
if (nt)
nr+=(1<<uj);
++nt;
uj=j;
s*=-1;
}
if (nt==1)
sol+=N/v[(1<<uj)];
else
{
v[i]=v[(1<<uj)]/cmmdc(v[(1<<uj)],v[nr])*v[nr];
if (s==-1)
sol-=(1<<(nt-1))*(N/v[i]);
else
sol+=(1<<(nt-1))*(N/v[i]);
}
}
}
int main()
{
read ();
solve ();
ofstream fout ("light2.out");
fout<<sol;
return 0;
}