Cod sursa(job #770633)

Utilizator SchumiDumitru Andrei Georgian Schumi Data 23 iulie 2012 16:03:16
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>

using namespace std;

int n, d, p[10], x, sol;

int main()
{
    int i;
    freopen ("pascal.in", "r", stdin);
    freopen ("pascal.out", "w", stdout);
    scanf("%d %d", &n, &d);
    for(i = 1; i <= n; i++) {
        x = n - i + 1;
        while(x % 2 == 0) {p[2]++, x /= 2;}
        while(x % 3 == 0) {p[3]++, x /= 3;}
        while(x % 5 == 0) {p[5]++, x /= 5;}
        x = i;
        while(x % 2 == 0) {p[2]--, x /= 2;}
        while(x % 3 == 0) {p[3]--, x /= 3;}
        while(x % 5 == 0) {p[5]--, x /= 5;}
        if(d == 2 && p[2]) {
            sol++;
            continue;
        }
        if(d == 3 && p[3]) {
            sol++;
            continue;
        }
        if(d == 4 && p[2] > 1) {
            sol++;
            continue;
        }
        if(d == 5 && p[5]) {
            sol++;
            continue;
        }
        if(d == 6 && p[2] && p[3]) {
            sol++;
            continue;
        }
    }
    printf("%d", sol);
    return 0;
}