Cod sursa(job #1560174)

Utilizator antanaAntonia Boca antana Data 1 ianuarie 2016 21:45:37
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#define mod 9999991
using namespace std;
long long ridicarelaput(long long f, long long exp)
{
    long long rez=1;
    while(exp)
    {
        if(exp%2==0)
        {
            f=(f*f)%mod;
            exp/=2;
        }
        else
        {
            rez=(rez*f)%mod;
            exp--;
        }
    }
    return rez;
}
int main()
{
    freopen("dirichlet.in", "r", stdin);
    freopen("dirichlet.out", "w", stdout);
    long long n, i, rasp=1, f1=1, f2=1;
    scanf("%lld", &n);
    for(i=n+2;i<=2*n;i++)
        f1=(f1*i)%mod;
    for(i=1;i<=n;i++)
        f2=(f2*i)%mod;
    rasp=(f1*ridicarelaput(f2, mod-2))%mod;
    printf("%lld", rasp);
    return 0;
}