Pagini recente » Cod sursa (job #1160970) | Cod sursa (job #653060) | Cod sursa (job #2008916) | Cod sursa (job #1111009) | Cod sursa (job #555214)
Cod sursa(job #555214)
#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,n_f;
long long cmmdc(long long a,long long b)
{
long long r ;
while(b)
{
r = a%b;
a=b;
b=r;
}
return a;
}
void back(int k,long long cmmmc)
{
if(k==K+1)
if(n_f)
if(n_f&1)Sol+=(1<<(n_f-1))*(N/cmmmc);
else Sol-=(1<<(n_f-1))*(N/cmmmc);
else ;
else
{
//nu folosesc V[k]
back(k+1,cmmmc);
//folosesc V[k]
cmc = cmmdc(cmmmc,V[k]);
cmmmc*=V[k];cmmmc/=cmc;
n_f++;
back(k+1,cmmmc);
n_f--;
}
}
int main()
{
in>>N>>K;
for(i=1;i<=K;i++)in>>V[i];
back(1,1);
out<<Sol;
return 0;
}