Cod sursa(job #555154)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 15 martie 2011 12:16:56
Problema Light2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define nmax 32

using namespace std;

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

long long i,nrcom,Sol,prod,N,cmc;
int K,V[nmax],nr,j;

long long cmmdc(long long a,long long b)
{
    long long r ;
    while(b)
    {
        r = a%b;
        a=b;
        b=r;
    }
    return a;
}

int main()
{
    in>>N>>K;
    for(i=1;i<=K;i++)in>>V[i];
    nrcom = (1<<K)-1;
    for(i=1;i<=nrcom;i++)
    {
        prod = 1,nr=0;
        cmc = 1;
        for(j=0;j<K;j++)
            if(i&(1<<j))
                prod*=V[j+1],cmc=(cmc==0?V[j+1]:cmc),cmc=cmmdc(cmc,V[j+1]),nr++;
        if(nr&1)Sol+=(1<<(nr-1))*(N/(prod/cmc));
        else Sol-=(1<<(nr-1))*(N/(prod/cmc));
    }
    out<<Sol;
    return 0;
}