Cod sursa(job #1217186)

Utilizator smaraldaSmaranda Dinu smaralda Data 6 august 2014 20:26:05
Problema Pascal Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<stdio.h>
#include<math.h>

int r, d;

int mult (int k, int n) {
    int res, pwr;

    res = 0;
    pwr = k;
    while(pwr <= n) {
        res += n / pwr;
        pwr *= k;
    }

    return res;
}

int main() {
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);
    int j, min2, min5, min3, jum, num, p2, p3, p5;

    scanf("%d%d", &r, &d);
    jum = r / 2;

    min2 = min3 = min5 =0;
    if(d == 2)
        min2 = 1;
    if(d == 3)
        min3 = 1;
    if(d == 4)
        min2 = 2;
    if(d == 5)
        min5 = 1;
    if(d == 5)
        min2 = min3 = 1;
    num = 0;

    for(j = 1; j < jum; ++ j) {
        p2 = mult(2, r) - mult(2, r - j) - mult(2, j);
        p3 = mult(3, r) - mult(3, r - j) - mult(3, j);
        p5 = mult(5, r) - mult(5, r - j) - mult(5, j);

        if(p2 >= min2 && p3 >= min3 && p5 >= min5)
            num += 2;
    }
    
    if(r % 2 == 0) {
        p2 = mult(2, r) - mult(2, r - jum) - mult(2, jum);
        p3 = mult(3, r) - mult(3, r - jum) - mult(3, jum);
        p5 = mult(5, r) - mult(5, r - jum) - mult(5, jum);

        if(p2 >= min2 && p3 >= min3 && p5 >= min5);
            ++ num;
    }

    printf("%d\n", num);
    return 0;
}