Pagini recente » Cod sursa (job #3229101) | Cod sursa (job #1067333) | Cod sursa (job #1253401) | Cod sursa (job #1378829) | Cod sursa (job #2713755)
#include <bits/stdc++.h>
using namespace std;
long long v[30];
long long k,sol;
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;
}
void back (int pas, long long nr, int poz){
if (pas > 0){
if (pas % 2)
sol += (1<<(pas-1))*(k/nr);
else sol -= (1<<(pas-1))*(k/nr);
}
if (pas >= n)
return;
for (int i=poz+1;i<=n;i++){
long long val = nr * v[i] / gcd(nr,v[i]);
if (val <= k)
back (pas+1,val,i);
}
}
int main (){
ifstream cin ("light2.in");
ofstream cout ("light2.out");
cin>>k>>n;
for (i=1;i<=n;i++)
cin>>v[i];
back (0,1,0);
cout<<sol;
return 0;
}