Cod sursa(job #2781324)

Utilizator ecaterinaEcaterina Stefanescu ecaterina Data 9 octombrie 2021 09:56:47
Problema Dirichlet Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>

#define MODUL 9999991

long long int lg(long long int baza, long long int put) {
    long long int p;
    p=1;
    while (put>0) {
        if (put%2==1) {
            p = (p*baza)%MODUL;
        }
        baza = (baza*baza)%MODUL;
        put/=2;
    }
    return p;
}


int main() {
    FILE *fin, *fout;
    fin = fopen("dirichlet.in", "r");
    fout = fopen("dirichlet.out", "w");
    
    int n, fn, i, nr;
    long long int rez;
    
    fscanf(fin, "%d", &n);
    
    fn = 1;
    for (i=2; i<=n; i++) {
        fn = (1LL*fn*i)%MODUL;
    }
    
    nr=1;
    for (i=n+2; i<=2*n; i++) {
        nr = (1LL*nr*i)%MODUL;
    }
    
    rez = (nr * lg(fn, MODUL-2))%MODUL;
    
    fprintf(fout, "%d\n", rez);
    
    fclose(fin);
    fclose(fout);
    return 0;
}