Pagini recente » Cod sursa (job #839807) | Monitorul de evaluare | Cod sursa (job #2418674) | Cod sursa (job #668004) | Cod sursa (job #2882603)
#include <fstream>
using namespace std;
ifstream cin("dirichlet.in");
ofstream cout("dirichlet.out");
const int mod = 9999991;
int euclidth(long long &x, long long &y, int n, int mod)
{
if(!mod)
x = y = 1;
else{
euclidth(x, y, mod, n % mod);
long long aux = x;
x = y;
y = aux - y * (n / mod);
}
}
int combinari(int n)
{
long long prod1 = 1, prod2 = 1, i;
for(i = n + 2; i <= 2 * n; i++)
prod1 = (prod1 * i) % mod;
for(i = 2; i <= n; i++)
prod2 = (prod2 * i) % mod;
long long x, y;
euclidth(x, y, prod2, mod);
while(x < 0)
x += mod;
return (prod1 * x) % mod;
}
int main()
{
int n;
cin >> n;
cout << combinari(n);
return 0;
}