#include <iostream>
#include <limits>
#include <cmath>
using namespace std;
int main() {
const long long int A = 222222200;
// Form the starting number in the form 4xxxx with the same number of digits of A
// AxB will be less than A at the beginning. This is necessary to match values of A
// like 400 which will just need B = 1 to be in the correct form
long long int AxB = 4;
int digits = 1;
while (AxB < A) {
AxB *= 10;
++digits;
}
AxB /= 10;
--digits;
// Augment AxB of one zero digit at the right at each iteration
do {
// Try to fill all the zeros with 4s to obtain progressively greater values, e.g.
// 4000
// 4400
// 4440
// 4444
long long int tempAxB = AxB;
for (int i = digits - 1; i > 0; --i) {
tempAxB += 4 * (long long int)pow(10, i - 1);
if(tempAxB < 0)
return 0; // Overflow
if (tempAxB % A == 0) {
cout << "Minimum B is " << tempAxB / A << endl;
return 0;
}
}
// Increase AxB
AxB *= 10;
++digits;
} while (AxB > 0); // Do not overflow
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGltaXRzPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCiAgY29uc3QgbG9uZyBsb25nIGludCBBID0gMjIyMjIyMjAwOwoKICAvLyBGb3JtIHRoZSBzdGFydGluZyBudW1iZXIgaW4gdGhlIGZvcm0gNHh4eHggd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgZGlnaXRzIG9mIEEKICAvLyBBeEIgd2lsbCBiZSBsZXNzIHRoYW4gQSBhdCB0aGUgYmVnaW5uaW5nLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBtYXRjaCB2YWx1ZXMgb2YgQQogIC8vIGxpa2UgNDAwIHdoaWNoIHdpbGwganVzdCBuZWVkIEIgPSAxIHRvIGJlIGluIHRoZSBjb3JyZWN0IGZvcm0KICBsb25nIGxvbmcgaW50IEF4QiA9IDQ7CiAgaW50IGRpZ2l0cyA9IDE7CiAgd2hpbGUgKEF4QiA8IEEpIHsKICAgIEF4QiAqPSAxMDsKICAgICsrZGlnaXRzOwogIH0KICBBeEIgLz0gMTA7CiAgLS1kaWdpdHM7CgogIC8vIEF1Z21lbnQgQXhCIG9mIG9uZSB6ZXJvIGRpZ2l0IGF0IHRoZSByaWdodCBhdCBlYWNoIGl0ZXJhdGlvbgogIGRvIHsKICAgIC8vIFRyeSB0byBmaWxsIGFsbCB0aGUgemVyb3Mgd2l0aCA0cyB0byBvYnRhaW4gcHJvZ3Jlc3NpdmVseSBncmVhdGVyIHZhbHVlcywgZS5nLgogICAgLy8gNDAwMAogICAgLy8gNDQwMAogICAgLy8gNDQ0MAogICAgLy8gNDQ0NAogICAgbG9uZyBsb25nIGludCB0ZW1wQXhCID0gQXhCOwogICAgZm9yIChpbnQgaSA9IGRpZ2l0cyAtIDE7IGkgPiAwOyAtLWkpIHsKICAgICAgdGVtcEF4QiArPSA0ICogKGxvbmcgbG9uZyBpbnQpcG93KDEwLCBpIC0gMSk7CiAgICAgIAogICAgICBpZih0ZW1wQXhCIDwgMCkKICAgICAgCXJldHVybiAwOyAvLyBPdmVyZmxvdwoKICAgICAgaWYgKHRlbXBBeEIgJSBBID09IDApIHsKICAgICAgICBjb3V0IDw8ICJNaW5pbXVtIEIgaXMgIiA8PCB0ZW1wQXhCIC8gQSA8PCBlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgICB9CiAgICB9CgogICAgLy8gSW5jcmVhc2UgQXhCCiAgICBBeEIgKj0gMTA7CiAgICArK2RpZ2l0czsKICB9IHdoaWxlIChBeEIgPiAwKTsgLy8gRG8gbm90IG92ZXJmbG93CgogIHJldHVybiAwOwp9