Cod sursa(job #761845)

Utilizator SchumiDumitru Andrei Georgian Schumi Data 27 iunie 2012 17:24:42
Problema Pascal Scor 80
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\n", sol);
    return 0;
}