Pagini recente » Cod sursa (job #1887424) | Cod sursa (job #1200021) | Cod sursa (job #931409) | Cod sursa (job #517068) | Cod sursa (job #547301)
Cod sursa(job #547301)
#include <cstdio>
#define ll long long
#define K 25
ll n;
int k;
ll d[K];
ll doi[K];
ll rez;
inline void citire() {
scanf("%lld%d",&n,&k);
for(int i=0; i<k; ++i)
scanf("%lld",&d[i]);
doi[1] = 1;
for(int i=2; i<=k; ++i)
doi[i] = (doi[i-1]<<1);
}
inline ll cmmmc(ll a,ll b) {
ll a1=a,b1=b;
ll r;
while(b!=0LL) {
r = a % b;
a = b;
b = r;
}
return (a1/a)*b1;
}
void back(ll x,int unde,int nrf) {
if(k==unde) {
if((nrf&1)==1)
rez += (n/x)*doi[nrf];
else
rez -= (n/x)*doi[nrf];
return;
}
back(x,unde+1,nrf);
x = cmmmc(x,d[unde]);
if(x<=n)
back(x,unde+1,nrf+1);
}
int main() {
freopen("light2.in","r",stdin);
freopen("light2.out","w",stdout);
citire();
back(1,0,0);
printf("%lld\n",rez);
return 0;
}