Cod sursa(job #1043274)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 28 noiembrie 2013 11:10:14
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

#define mod 9999991

long long int rid(long long int a,long long int b)
{
    if(b==0)
        return 1;
    else if(b==1)
        return (a%mod);
    else if(b%2==0)
    {
        long long int aux=rid(a,b/2);
        return ((aux*aux)%mod);
    }
    else
    {
        long long int aux=rid(a,b-1);
        return ((aux*a)%mod);
    }
}

int main()
{
    ifstream cin("dirichlet.in");
    ofstream cout("dirichlet.out");

    long long int n,i,nr1=1,nr2=1;
    cin>>n;

    for(i=n+2;i<=(2*n);i++)
        nr1*=i,nr1%=mod;

    for(i=1;i<=n;i++)
        nr2*=i,nr2%=mod;

    long long int inv=rid(nr2,mod-2);
    cout<<(inv*nr1)%mod<<'\n';

    cin.close();
    cout.close();
    return 0;
}