Pagini recente » Cod sursa (job #1534877) | Cod sursa (job #2653949) | Cod sursa (job #2098753) | Cod sursa (job #2322548) | Cod sursa (job #1704398)
#include <iostream>
#include <fstream>
#define LL long long
using namespace std;
ifstream si("light2.in");
ofstream so("light2.out");
LL n;
LL 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 1ll*a*b/cmmdc(a,b);
}
void gen(LL poz,LL val,LL cont)
{
if(cont&1)
{
sum+=1ll*cont*(n/val);
}
else
{
sum-=1ll*cont*(n/val);
}
//cout<<sum<<' '<<poz<<' '<<cont<<'\n';
for(--poz;poz>=0;--poz)
{
gen(poz,cmmmc(val,nr[poz]),cont+1);
}
}
int main()
{
si>>n;
si>>m;
LL i;
//cout<<cmmdc(4,6);
for(i=0;i<m;++i)
{
si>>nr[i];
gen(i,nr[i],1);
}
so<<sum;
so.close();
return 0;
}