Pagini recente » Cod sursa (job #921190) | Cod sursa (job #3039015) | Cod sursa (job #599262) | Cod sursa (job #2558146) | Cod sursa (job #1240628)
#include<fstream>
using namespace std;
ifstream in("light2.in");
ofstream out("light2.out");
typedef long long ll;
int K,d[25],v[25];
ll N,Sum;
ll cmmdc(ll a,ll b){
if(!b) return a;
return cmmdc(b,a%b);
}
ll cmmmc(ll a,ll b){
return 1LL*a*b / cmmdc(a,b);
}
void back(int i,int sign,ll p){
Sum+=(1LL<<(i-2))*sign*(N/p);
if(i<=K){
for(v[i]=v[i-1]+1;v[i]<=K;v[i]++){
back(i+1,-sign,cmmmc(p,d[ v[i] ]));
v[i+1]=0;
}
}
}
int main(){
in>>N>>K;
for(int i=1;i<=K;i++) in>>d[i];
back(1,-1,1);
out<<Sum<<'\n';
return 0;
}