Pagini recente » Cod sursa (job #2102385) | Cod sursa (job #1943328) | Cod sursa (job #1148206) | Cod sursa (job #617671) | Cod sursa (job #559385)
Cod sursa(job #559385)
#include <fstream>
using namespace std;
ifstream fin("light2.in");
ofstream fout("light2.out");
#define ll long long
ll i,j,N,K,R;
ll d[25];
void citire()
{
fin >> N;
fin >> K;
for(i=1;i<=K;i++)
fin >> d[i];
}
ll cmmdc(ll a, ll b)
{
ll r;
while(b>0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
ll cmmmc(ll a, ll b)
{
ll r=1LL*a*b/cmmdc(a,b);
return r;
}
void back(int poz, int nrf, ll P)
{
ll CMMMC;
if(poz==K+1 || P>N)
return;
CMMMC=cmmmc(P,d[poz]);
if(nrf&1)
R+=(1LL*(N/CMMMC)*(1<<(nrf-1)));
else
R-=(1LL*(N/CMMMC)*(1<<(nrf-1)));
back(poz+1,nrf,P);
back(poz+1,nrf+1,CMMMC);
}
int main()
{
citire();
back(1,1,1);
fout << R;
}