Pagini recente » Cod sursa (job #325944) | Cod sursa (job #930432) | Cod sursa (job #1691691) | Cod sursa (job #2149689) | Cod sursa (job #2713740)
#include <bits/stdc++.h>
using namespace std;
long long v[30];
long long k;
int n,i;
long long gcd (long long a, long long b){
long long r = 0;
while (b){
r = a%b;
a = b;
b = r;
}
return a;
}
int main (){
ifstream cin ("light2.in");
ofstream cout ("light2.out");
cin>>k>>n;
for (i=0;i<n;i++)
cin>>v[i];
long long sol = 0;
for (int mask=1;mask<(1<<n);mask++){
long long nr = 0, cnt = 0;
for (int bit=0;bit<n;bit++){
if (!(mask & (1<<bit)))
continue;
cnt++;
if (!nr)
nr = v[bit];
else nr = nr * v[bit] / gcd (nr,v[bit]);
if (nr > k)
break;
}
if (cnt % 2)
sol += (1<<(cnt-1))*(k/nr);
else sol -= (1<<(cnt-1))*(k/nr);
}
cout<<sol;
return 0;
}