Pagini recente » Cod sursa (job #246134) | Cod sursa (job #1982542) | Cod sursa (job #594174) | Cod sursa (job #1447278) | Cod sursa (job #555154)
Cod sursa(job #555154)
#include <fstream>
#define nmax 32
using namespace std;
ifstream in("light2.in");
ofstream out("light2.out");
long long i,nrcom,Sol,prod,N,cmc;
int K,V[nmax],nr,j;
long long cmmdc(long long a,long long b)
{
long long r ;
while(b)
{
r = a%b;
a=b;
b=r;
}
return a;
}
int main()
{
in>>N>>K;
for(i=1;i<=K;i++)in>>V[i];
nrcom = (1<<K)-1;
for(i=1;i<=nrcom;i++)
{
prod = 1,nr=0;
cmc = 1;
for(j=0;j<K;j++)
if(i&(1<<j))
prod*=V[j+1],cmc=(cmc==0?V[j+1]:cmc),cmc=cmmdc(cmc,V[j+1]),nr++;
if(nr&1)Sol+=(1<<(nr-1))*(N/(prod/cmc));
else Sol-=(1<<(nr-1))*(N/(prod/cmc));
}
out<<Sol;
return 0;
}