Cod sursa(job #1482682)

Utilizator MaarcellKurt Godel Maarcell Data 7 septembrie 2015 18:27:45
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#define prim 9999991
#define LL long long
using namespace std;

LL N;

LL inv(LL nr){
    nr%=prim;
    LL res=1,p=prim-2;
    while (p){
        if (p&1)
            res=(res*nr)%prim;
        nr=(nr*nr)%prim;
        p>>=1;
    }
    return res;
}

int main(){
    ifstream fin("dirichlet.in");
    ofstream fout("dirichlet.out");
    fin >> N;

    LL fn=1,i;
    for (i=1; i<=N; i++)
        fn=(fn*i)%prim;

    LL f2n=fn;
    for (i=N+1; i<=2*N; i++)
        f2n=(f2n*i)%prim;

    LL res=((f2n*inv(fn))%prim*inv(fn))%prim;
    res=(res*inv(N+1))%prim;

    fout << res << "\n";
    return 0;
}