Cod sursa(job #912215)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 12 martie 2013 10:25:19
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
using namespace std;
FILE*A,*B;
long long unsigned i,k,j,numarator=1,n,numitor=1,x,d;
long long unsigned p(long long unsigned a,long long unsigned b)
{
    long long unsigned q;
    if(b==1)return a%d;
    else if(b==0)return 1;
    else
    {
        q=p(a,b/2);
        if(b%2==1)return ((q*q)%d*a)%d;
        else return ((q*q)%d);
    }
}
int main()
{
   A=fopen("dirichlet.in","r");
   B=fopen("dirichlet.out","w");
   fscanf(A,"%llu",&n);
   d=9999991;
   for(i=n+2;i<=2*n;i++){numarator=(numarator*i)%d;}
   for(i=2;i<=n;i++){numitor=(numitor*i)%d;}
   x=p(numitor,d-2);
   k=(x*numarator)%d;
   fprintf(B,"%llu",k);
}