Cod sursa(job #1146168)

Utilizator PatrikStepan Patrik Patrik Data 18 martie 2014 19:27:57
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
    #include<cstdio>
    using namespace std;
    int R , D , rez ;

    int find(int d , int n);

    int main()
    {
        freopen("pascal.in" , "r" , stdin );
        freopen("pascal.out" , "w" , stdout );
        scanf("%d%d" , &R , &D );
        for(int i = 1 ; i < R ; ++i )
        {
            if(D == 4) rez +=(find(2,R)-find(2,R-i)-find(2,i) > 1);
            else
            if( D == 6) rez +=((find(2,R)-find(2,R-i)-find(2,i)>0) &&
                               (find(3,R)-find(3,R-i)-find(3,i)>0));
            else rez += (find(D,R)-find(D,R-i) - find(D,i) > 0);
        }
        printf("%d" , rez );
        return 0;
    }

    int find(int d , int n)
    {
        int aux = d , ret = 0;
        while(aux <= n)
        {
            ret += n/aux;
            aux *=d;
        }
        return ret;
    }