Pagini recente » Cod sursa (job #2555561) | Cod sursa (job #481907) | Cod sursa (job #2413402) | Cod sursa (job #730884) | Cod sursa (job #2222923)
#include <bits/stdc++.h>
const int m=9999991;int r(int n,int b){long long bb=n,r=1;int c=b;while(c){if(c&1)r*=bb,r%=m;bb*=bb;bb%=m;c/=2;}return r;}bool v[2000005];int i,j;void c(){v[0]=v[1]=1;for(i=4;i<=2000000;i+=2)v[i]=1;for(i=3;i*i<2000000;i+=2)if(!v[i])for(j=i*i;j<=2000000;j+=2*i)v[j]=1;}int main(){freopen("dirichlet.in","r",stdin);freopen("dirichlet.out","w",stdout);int n;long long p=1;scanf("%d",&n);c();for(i=2;i<=2*n;i++){if(v[i])continue;int cn=0;int cp=2*n;while(cp){cn+=cp/i;cp/=i;}cp=n+1;while(cp){cn-=cp/i;cp/=i;}cp=n;while(cp){cn-=cp/i;cp/=i;}p*=r(i,cn);p%=m;}printf("%lld",p);return 0;}