Pagini recente » Cod sursa (job #1729362) | Cod sursa (job #2776207) | Cod sursa (job #1513288) | Cod sursa (job #1599995) | Cod sursa (job #1780441)
#include <cstdio>
using namespace std;
int v1[25],v[25];
long long cmmmc(int n)
{
long long b=1,p,a,r;
for(int i=1;i<=n;i++)
{
a=v1[i];
p=a*b;
while(1)
{
r=a%b;
if(r==0) break;
a=b;
b=r;
}
b=p/b;
}
return b;
}
int main()
{
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
long long sol=0,n,a;
int k,c;
scanf("%lld%d",&n,&k);
for(int i=1;i<=k;i++)
scanf("%d",&v[i]);
for(int i=1;i<=(1<<k);i++)
{
c=0;
for(int j=0;j<k;j++)
if(i&(1<<j)) {c++;v1[c]=v[j+1];}
if(c>0)
{
a=cmmmc(c);
if(c%2==0) sol=sol-(1<<(c-1))*(n/a);
else sol=sol+(1<<(c-1))*(n/a);
}
}
printf("%lld",sol);
return 0;
}