Cod sursa(job #2691291)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 27 decembrie 2020 22:29:18
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define MOD 9999991

long long lgput( long long a, long long b ){
    long long rez = 1;
    while( b > 0 ){
        if( b & 1 )
            rez = rez * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    return rez;
}

int main()
{
    long long n, p, rez = 1LL, put = 1LL;
    FILE *fin = fopen( "dirichlet.in", "r" );
    fscanf( fin, "%lld", &n );
    fclose( fin );

    for( int i = n + 2; i <= 2 * n; i++ ){
        rez = i * rez % MOD;
    }
    for( int i = 2; i <= n; i++ )
        put = ( long long )i * put % MOD;
    rez = rez * lgput( put, MOD - 2 ) % MOD;
    FILE *fout = fopen( "dirichlet.out", "w" );
    fprintf( fout, "%lld\n", rez );
    fclose( fout );
    return 0;
}