Pagini recente » Cod sursa (job #2350853) | Cod sursa (job #103575) | Cod sursa (job #1337301) | Cod sursa (job #140259) | Cod sursa (job #1343821)
#include <iostream>
#include <fstream>
#define LL long long int
using namespace std;
LL N,d[30],aux=1,sum; int K,P;
LL gcd(LL a, LL b){
if (!b) return a;
return gcd(b,a%b);
}
void comb(int cnt, int ind){
if (cnt==0){
sum+=N/aux;
return;
}
if (K-ind+1>cnt)
comb(cnt,ind+1);
LL gc=gcd(aux,d[ind]);
aux=(aux*d[ind])/gc;
comb(cnt-1,ind+1);
aux=(aux*gc)/d[ind];
}
int main(){
ifstream fin("light2.in");
ofstream fout("light2.out");
fin >> N >> K;
LL i,res=0;
for (i=1; i<=K; i++) fin >> d[i];
for (i=1; i<=K; i++){
sum=0;
comb(i,1);
if (i%2) res+=(1<<(i-1))*sum;
else res-=(1<<(i-1))*sum;
}
fout << res;
return 0;
}