#include <stdio.h>
#include <omp.h>

main(int argc, char **argv)
{
	register double width;
	double sum;
	register int intervals, i;

/*
	omp_set_num_threads(4);
*/

	intervals = atoi(argv[1]);
	width = 1.0 / intervals;
	sum = 0;
#pragma omp parallel for reduction(+: sum) schedule(static)
	for (i=0; i<intervals; ++i) {
		double x = (i + 0.5) * width;
		sum += 4.0 / (1.0 + x * x);
	}
	sum *= width;
	printf("Pi=%f\n", sum);
	return(0);
}
