Pagini recente » Cod sursa (job #3150319) | Cod sursa (job #197918) | Cod sursa (job #1271633) | Cod sursa (job #261680) | Cod sursa (job #543744)
Cod sursa(job #543744)
#include<algorithm>
using namespace std;
#define DIM 25
long long a[DIM],n,sol;
int b[DIM],k;
inline long long cmmmc (long long nr1,long long nr2)
{
long long aux2=nr2,aux;
while(nr2)
{
aux=nr1%nr2;
nr1=nr2;
nr2=aux;
}
return (long long)aux2/nr1;
}
inline int smn (int x)
{
if(x%2==1)
return 1;
return -1;
}
void back (int x,int poz,long long rez)
{
if(x==k+1)
return ;
else
{
int i;
long long aux;
for(i=poz;i<=k;++i)
{
b[x]=i;
if(x!=1)
aux=(long long)rez*cmmmc(rez,a[i]);
else
aux=(long long)rez*a[i];
sol+=(long long)smn(x)*(n/aux)*(1<<(x-1));
back(x+1,i+1,aux);
}
}
}
int main ()
{
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
int i;
scanf("%lld\n%d\n",&n,&k);
for(i=1;i<=k;++i)
scanf("%lld",&a[i]);
back(1,1,1);
printf("%lld\n",sol);
return 0;
}