Pagini recente » Cod sursa (job #1438138) | Cod sursa (job #591953) | Cod sursa (job #910386) | Cod sursa (job #1214595) | Cod sursa (job #2439155)
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
ifstream in ("light2.in");
ofstream out ("light2.out");
#define ll long long
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) < (b)) ? (b) : (a))
int const nmax = 22;
ll v[1 + nmax];
ll lcm(ll a, ll b, ll lim){
ll gcd = __gcd(a, b);
ll result = a * b / gcd;
if(result <= lim)
return result;
else
return lim + 1;
}
int main()
{
ll sz, n;
in >> sz >> n;
for(int i = 0;i < n; i++)
in >> v[i];
ll result = 0;
for(int mask = 1; mask < (1 << n); mask++){
ll val = 1;
int sign = -1;
for(int i = 0; i < n; i++) {
if(0 < (mask & (1 << i))) {
val = lcm(val, v[i], sz);
sign *= -1;
}
}
result += sz / val * sign;
}
out << result;
return 0;
}