#include <iostream>
#include <iomanip>
#include <limits>
#include <cstdint>
using std:: cout ;
int main( )
{
typedef std:: uint_fast64_t uint_type;
double a, b, c;
uint_type ta, tb, tc, ic;
a = 45 '035' 996 '273' 704 '952ULL; // (2**53 - 2) * 5 + 2;
b = 9' 007 '199' 254 '740' 991ULL; // 2**53 - 1;
c = a / b;
ta = static_cast < uint_type> ( a) ;
tb = static_cast < uint_type> ( b) ;
tc = static_cast < uint_type> ( c) ;
ic = ta / tb;
cout << std:: setprecision ( std:: numeric_limits < double > :: max_digits10 ) << std:: scientific << std:: boolalpha ;
cout << "a == " << a << "\n " ;
cout << "ta == " << ta << "\n \n " ;
cout << "b == " << b << "\n " ;
cout << "tb == " << tb << "\n \n " ;
cout << "c = " << c << "\n " ;
cout << "tc == " << tc << "\n " ;
cout << "ic == " << ic << "\n " ;
cout << "tc == ic: " << ( tc == ic) << "\n \n " ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPGNzdGRpbnQ+CnVzaW5nIHN0ZDo6Y291dDsKCmludCBtYWluKCkKewoJdHlwZWRlZiBzdGQ6OnVpbnRfZmFzdDY0X3QgdWludF90eXBlOwoKCWRvdWJsZSBhLCBiLCBjOwoJdWludF90eXBlIHRhLCB0YiwgdGMsIGljOwoKCWEgPSA0NScwMzUnOTk2JzI3Myc3MDQnOTUyVUxMOyAvLyAoMioqNTMgLSAyKSAqIDUgKyAyOwoJYiA9IDknMDA3JzE5OScyNTQnNzQwJzk5MVVMTDsgICAgIC8vICAyKio1MyAtIDE7CgljID0gYSAvIGI7CgoJdGEgPSBzdGF0aWNfY2FzdDx1aW50X3R5cGU+KGEpOwoJdGIgPSBzdGF0aWNfY2FzdDx1aW50X3R5cGU+KGIpOwoJdGMgPSBzdGF0aWNfY2FzdDx1aW50X3R5cGU+KGMpOwoJaWMgPSB0YSAvIHRiOwoKCWNvdXQgPDwgc3RkOjpzZXRwcmVjaXNpb24oc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXhfZGlnaXRzMTApIDw8IHN0ZDo6c2NpZW50aWZpYyA8PCBzdGQ6OmJvb2xhbHBoYTsKCgljb3V0IDw8ICJhICA9PSAiICA8PCBhICA8PCAiXG4iOwoJY291dCA8PCAidGEgPT0gICIgPDwgdGEgPDwgIlxuXG4iOwoJCgljb3V0IDw8ICJiICA9PSAiICA8PCBiICA8PCAiXG4iOwoJY291dCA8PCAidGIgPT0gICIgPDwgdGIgPDwgIlxuXG4iOwoKCWNvdXQgPDwgImMgID0gIiAgIDw8IGMgIDw8ICJcbiI7Cgljb3V0IDw8ICJ0YyA9PSAgIiA8PCB0YyA8PCAiXG4iOwoJY291dCA8PCAiaWMgPT0gICIgPDwgaWMgPDwgIlxuIjsKCgljb3V0IDw8ICJ0YyA9PSBpYzogIiA8PCAodGMgPT0gaWMpIDw8ICJcblxuIjsKCQoJcmV0dXJuIDA7Cn0=