#include <iostream>
#include <iomanip>
#include <limits>
#include <math.h>

int main(){
	double PI = 0;
	double Delta = std::numeric_limits<double>::epsilon() * 2;
	double k = 0;
	
	while (Delta > std::numeric_limits<double>::epsilon()){
		Delta = (4 / (8 * k + 1) - 1 / (4 * k + 2) - 1 / (8 * k + 5) - 1 / (8 * k + 6)) / pow(16.0 ,k);
		PI += Delta;
		k++;
	}

	std::cout << std::setprecision(16) << "PI => " << PI << " k => " << k << std::endl;

	return 0;

}