Pagini recente » Cod sursa (job #2999529) | Cod sursa (job #622063) | Cod sursa (job #409590) | Cod sursa (job #1444329) | Cod sursa (job #1780450)
#include <cstdio>
using namespace std;
int v1[25],v[25];
long long n;
long long cmmmc(int nr)
{
long long b=1,p,a,r;
for(int i=1;i<=nr && b<=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,a;
int k,c;
scanf("%lld%d",&n,&k);
for(int i=0;i<k;i++)
scanf("%d",&v[i]);
for(int mask=1;mask<(1<<k);mask++)
{
c=0;
for(int i=0;i<k;i++)
if(mask&(1<<i)) {v1[++c]=v[i];}
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;
}