Cod sursa(job #1668644)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 29 martie 2016 22:31:48
Problema Dirichlet Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>
#define MOD 9999991

long long putereSiValoare(long long x, long long y){
    long long var=x, p;
    p=1;
    while(y>0){
        if(y%2==1)
           p=(p*var)%MOD;
        y/=2;
        var=(var*var)%MOD;
    }
    return p;
}
int main(){
    int n, i;
    long long fact, itm;
    FILE*fi,*fo;
    fi=fopen("dirichlet.in","r");
    fo=fopen("dirichlet.out","w");
    fscanf(fi,"%d" ,&n);
    fact=1;
    for(i=1;i<=n;i++){
        fact*=i;
        fact%=MOD;
    }
    itm=fact;
    fact=(fact*(i+1))%MOD;
    itm*=fact;
    itm%=MOD;
    for(i=n+2;i<=2*n;i++){
        fact*=i;
        fact%=MOD;
    }
    fprintf(fo,"%lld", (((putereSiValoare(itm, MOD-2))%MOD)*fact)%MOD);
    fclose(fi);
    fclose(fo);
    return 0;
}