Pagini recente » Cod sursa (job #2106219) | Cod sursa (job #2960636) | Cod sursa (job #2975279) | Cod sursa (job #2697642) | Cod sursa (job #2521200)
#include <fstream>
using namespace std;
ifstream fin("light2.in");
ofstream fout("light2.out");
typedef long long ll;
ll n, rez;
ll k, v[30];
ll gcd(ll a, ll b){
while(b){
ll r = a % b;
a = b;
b = r;
}
return a;
}
void gen(ll pas, ll cmmmc, ll semn, ll lg){
if(pas == k + 1){
rez += semn * (n / cmmmc) * (1LL << (lg - 1));
return;
}
gen(pas + 1, cmmmc, semn, lg);
gen(pas + 1, min(n + 1, (cmmmc * v[pas]) / gcd(cmmmc, v[pas])), (semn == 1 ? -1 : 1), lg + 1);
}
int main()
{
fin >> n >> k;
for(int i = 1; i <= k; ++i)
fin >> v[i];
gen(1, 1, -1, 0);
fout << rez << '\n';
return 0;
}