Cod sursa(job #2781299)

Utilizator albertaizicAizic Albert albertaizic Data 8 octombrie 2021 23:32:05
Problema Dirichlet Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <stdlib.h>
#define MOD 9999991

int inversMod(int a,int b) {
    int x,y;
    euclid(a,b,&x,&y);
    if(x<0)
      x=x+b;
    return x%MOD;
}
void euclid(int a,int b,int *x,int *y){
  if(b==0){
    *x=1;
    *y=0;
  }else{
    int x0,y0;
    euclid(b,a%b,&x0,&y0);
    *x=y0;
    *y=x0-(a/b)*y0;
  }
}
int main(){
    FILE *fin,*fout;
    int n,i;
    long long prod,rez,fact;
    fin=fopen("dirichlet.in","r");
    fscanf(fin,"%d",&n);
    fclose(fin);
    prod=1;
    fact=n+1;
    for(i=1;i<=n;i++){
        prod=prod*(n+i)%MOD;
        fact=fact*i%MOD;
    }
    rez=(prod*inversMod(fact,MOD))%MOD;
    fout=fopen("dirichlet.out","w");
    fprintf(fout,"%lld\n",rez);
    fclose(fout);
    return 0;
}