Cod sursa(job #2461314)

Utilizator stefantagaTaga Stefan stefantaga Data 25 septembrie 2019 13:10:32
Problema Light2 Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("light2.in");
ofstream g("light2.out");
int v[25],k,prod,lim,sum,nr,i,j,p1,nr1;
long long n,vec[500];
int cmmdc(int a,int b)
{
    int  r;
    r=a%b;
    while (r)
    {
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}
int main()
{
    f>>n;
    f>>k;
    for (i=1;i<=k;i++)
    {
        f>>v[i];
    }
    vec[0]=1;
    for (j=1;j<=k;j++)
    {
        vec[j]=vec[j-1]*2;
    }
    lim=(1<<k);
    for (j=1;j<lim;j++)
    {
        prod=1;
        nr=0;
        for (i=0;i<k;i++)
        {
            p1=(1<<i);
            if ((j&p1)!=0)
            {
                prod=prod*v[i+1]/cmmdc(prod,v[i+1]);
                nr++;
            }
        }
        if (nr%2==0)
        {
            sum=sum-n/prod*vec[nr-1];
        }
        else
        {
            sum=sum+n/prod*vec[nr-1];
        }
    }
    g<<sum;
    return 0;
}