#include <iostream>
#include <iomanip>
#include <cmath>

int main(void) {
	double max1 = pow(2, 64) - 1;
	std::cout << "pow(2, 64) - 1 = " << std::fixed << max1 << '\n';
	std::cout << "Previous representable value: " << std::nextafter(max1, 0) << '\n';
	std::cout << (pow(2, 64) - 1 == pow(2, 64)) << '\n';
	
	long double max2 = pow(2.0L, 64) - 1.0L;
	std::cout << std::fixed << max2 << '\n';
	
	return 0;
}
