Pagini recente » Cod sursa (job #2212411) | Cod sursa (job #2204795) | Cod sursa (job #2368176) | Cod sursa (job #2044257) | Cod sursa (job #1704913)
#include <iostream>
#include <fstream>
#define LL long long
using namespace std;
ifstream si("light2.in");
ofstream so("light2.out");
LL n;
int m;
LL nr[25];
LL sum=0;
LL cmmdc(LL a,LL b)
{
LL r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
return b;
}
LL cmmmc(LL a,LL b)
{
return a*b/cmmdc(a,b);
}
void gen(int a,LL b,int c)
{
b=cmmmc(b,nr[a]);
++c;
if(c>n)
return;
if(c&1)
{
sum+=(1<<(c-1))*(n/b);
}
else
{
sum-=(1<<(c-1))*(n/b);
}
int i;
for(i=a-1;i>=0;--i)
{
gen(i,b,c);
}
}
int main()
{
si>>n;
si>>m;
int i;
for(i=0;i<m;++i)
{
si>>nr[i];
gen(i,1,0);
}
so<<sum;
so.close();
return 0;
}