Cod sursa(job #997982)

Utilizator poptibiPop Tiberiu poptibi Data 15 septembrie 2013 13:27:55
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
using namespace std;

int R, D, Freq[6], Ans;

void Desc(int X)
{
    while(X % 2 == 0) Freq[2] ++, X /= 2;
    while(X % 3 == 0) Freq[3] ++, X /= 3;
    while(X % 5 == 0) Freq[5] ++, X /= 5;
}

int main()
{
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);

    scanf("%i %i", &R, &D);
    for(int i = 1; 2 * i <= R; ++ i)
    {
        Desc(R - i + 1);
        Desc(i);

        if((D == 2 && Freq[2]) || (D == 3 && Freq[3]) || (D == 4 && Freq[2] >= 2) || (D == 5 && Freq[5]) || (D == 6 && Freq[2] && Freq[3]))
        {
            Ans += 2;
            if(2 * i == R) Ans --;
        }
    }

    printf("%i\n", Ans);
    return 0;
}