Cod sursa(job #2193188)

Utilizator kitzTimofte Bogdan kitz Data 9 aprilie 2018 11:21:45
Problema Pascal Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
using namespace std;
unsigned long long row;
int divider;


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

    scanf("%lld %d", &row, &divider);
    if (row == 0 || row == 1) {
        printf("0\n");
        return 0;
    }

    unsigned long long counter = 0;
    unsigned long long ant = 1;
    unsigned long long current = 0;
    for (unsigned long long k = 0; k < row / 2; k++)
    {
        current = ant * (row - k) / (k + 1);
        if (current % divider == 0) {
            counter += 2;
        }
        ant = current;
    }

    if ( row % 2 == 0) {
        if (current % divider == 0) {
            counter -= 1;
        }
    }

    printf("%lld\n", counter);
    return 0;
}