Cod sursa(job #944596)

Utilizator Athena99Anghel Anca Athena99 Data 29 aprilie 2013 07:41:22
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cassert>
#include <cstdio>

const int mod=9999991;

int main()
{
    long long n=0,sol=1,i=0,a=0,b=0,k=1;
    assert(freopen("dirichlet.in","r",stdin));
    assert(freopen("dirichlet.out","w",stdout));

    assert(scanf("%lld",&n));
    for (i=1; i<=n; ++i)
        sol=(sol*i)%mod;

    a=sol;
    b=mod-2;

    while (b>0)
    {
        if (b%2==1)
            k=(k*a)%mod;
        a=(a*a)%mod;
        b/=2;
    }
    sol=k;

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

    assert(printf("%lld\n",sol));

    return 0;
}