Cod sursa(job #2241696)

Utilizator ElizaTElla Rose ElizaT Data 16 septembrie 2018 19:00:23
Problema Light2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("light2.in");
ofstream fout("light2.out");

int d[25],v[25];
long long int n,ans;
int k;

long long int GCD(long long int a, long long int b)
{
    int r;
    while (b)
    {
        r = a % b;
        a = b;
        b = r;
    }
    return a;
}
long long int LCM(long long int a, long long int b)
{
    return a * b / (GCD(a, b));
}
void BKT(int i, int smn, long long int lcm)
{
    ans += (1LL << (i - 2)) * smn * (n / lcm);
    if (i <= k)
    {
        for (v[i] = v[i - 1] + 1;v[i] <= k;v[i]++)
            BKT(i + 1, -1 * smn, LCM(lcm, d[v[i]]));
    }
}

int main()
{
    fin >> n >> k;
    for (int i = 1;i <= k;i++)
        fin >> d[i];
    BKT(1, -1, 1);
    fout << ans << '\n';
    return 0;
}