Cod sursa(job #2667536)

Utilizator LucaMihaiLM10Luca Ilie LucaMihaiLM10 Data 3 noiembrie 2020 16:55:43
Problema Dirichlet Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
#define MOD 9999991
//2n! / (n + 1)! / n!
int lgput( int a, int e ) {
    int r;
    if ( e == 0 )
        return 1;
    r = lgput( a, e / 2 );
    r = (long long)r * r % MOD;
    if ( e % 2 == 1 )
        r = (long long)r * a % MOD;
    return r;
}
int main() {
    FILE *fin, *fout;
    int n, pos, fact, i;
    fin = fopen( "dirichlet.in", "r" );
    fscanf( fin, "%d", &n );
    fclose( fin );
    pos = 1;
    for ( i = n + 2; i <= 2 * n; i++ )
        pos = (long long)pos * i % MOD;
    fact = 1;
    for ( i = 2; i <= n; i++ )
        fact = (long long)fact * i % MOD;
    pos = (long long)pos * lgput( fact, MOD - 2 ) % MOD;
    fout = fopen( "dirichlet.out", "w" );
    fprintf( fout, "%d", pos );
    fclose( fout );
    return 0;
}