Cod sursa(job #2282523)

Utilizator PinkiePie1189Preoteasa Mircea-Costin PinkiePie1189 Data 13 noiembrie 2018 21:46:29
Problema Pascal Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <stdio.h>
#define MAXN 5000000

int calc(int num, int pw);

FILE *fin, *fout;


int fact[MAXN + 1];


int main() {

    fin = fopen("pascal.in","r");
    fout = fopen("pascal.out", "w");


    int N, D;

    fscanf(fin, "%d %d", &N, &D);
    for(int i = 1; i <= N; i++) {
       fact[i] = fact[i - 1];

       int num = i;

       int nr = 0;

       while(num % D == 0) {
            num++;
            nr++;
       }
       fact[i] += num;
    }

    int ans = 0;
    for(int i = 1; i < N; i++) {
        if(fact[N] - fact[i]  - fact[N - i] >= 0) {
            ans++;
        }
    }

    fprintf(fout, "%d", ans);

    fclose(fin);
    fclose(fout);
    return 0;
}

int calc(int num, int pw) {
    int rez = 0;
    if(pw == 2) {
        while(num % 2 == 0) {
            num /= 2;
            rez++;
        }
    } else if(pw == 3) {
        while(num % 3 == 0) {
            num /= 3;
            rez++;
        }
    } else if(pw == 5) {
        while(num % 5 == 0) {
            num /= 5;
            rez++;
        }
    }
    return rez;
}