#include #include #include double Hser(int p,int q){ double hn=0.0; for(int k=q;k>=p;k--) hn+=1.0/k; return hn; } double Hpar(int p,int q){ if(q-p<20000000) return Hser(p,q); int c=p/2+q/2; double r1=cilk_spawn Hpar(p,c); double r2=Hpar(c+1,q); cilk_sync; return r1+r2; } int main() { int n=2000000000; printf("gamma(%d) = %.14f\n",n,Hpar(1,n)-log(n)); return 0; }