Pagini recente » Cod sursa (job #3002938) | Cod sursa (job #2304627) | Cod sursa (job #2621427) | Cod sursa (job #1014342) | Cod sursa (job #1704119)
#include <iostream>
#include <fstream>
#define LL long long
using namespace std;
ifstream si("light2.in");
ofstream so("light2.out");
LL n;
int m;
int nr[25];
LL sum=0;
LL cmmdc(int a,int b)
{
int r=a%b;
while(r)
{
a=b;
b=r;
r=a%b;
}
return b;
}
LL cmmmc(int a,int b)
{
return 1ll*a*b/cmmdc(a,b);
}
void gen(int poz,int val,int 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;
int 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;
}