// C++ program to implement division with large
// number
#include <bits/stdc++.h>
using namespace std;
// A function to perform division of large numbers
string longDivision(string number, int divisor)
{
// As result can be very large store it in string
string ans;
// Find prefix of number that is larger
// than divisor.
int idx = 0;
int temp = number[idx] - '0';
while (temp < divisor)
temp = temp * 10 + (number[++idx] - '0');
// Repeatedly divide divisor with temp. After
// every division, update temp to include one
// more digit.
while (number.size() > idx)
{
// Store result in answer i.e. temp / divisor
ans += (temp / divisor) + '0';
// Take next digit of number
temp = (temp % divisor) * 10 + number[++idx] - '0';
}
// If divisor is greater than number
if (ans.length() == 0)
return "0";
// else return ans
return ans;
}
// Driver program to test longDivison()
int main()
{
string number = "1248163264128256512";
int divisor = 125;
cout << longDivision(number, divisor);
return 0;
}
Ly8gQysrIHByb2dyYW0gdG8gaW1wbGVtZW50IGRpdmlzaW9uIHdpdGggbGFyZ2UgCi8vIG51bWJlciAKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAKCi8vIEEgZnVuY3Rpb24gdG8gcGVyZm9ybSBkaXZpc2lvbiBvZiBsYXJnZSBudW1iZXJzIApzdHJpbmcgbG9uZ0RpdmlzaW9uKHN0cmluZyBudW1iZXIsIGludCBkaXZpc29yKSAKeyAKCS8vIEFzIHJlc3VsdCBjYW4gYmUgdmVyeSBsYXJnZSBzdG9yZSBpdCBpbiBzdHJpbmcgCglzdHJpbmcgYW5zOyAKCQoJLy8gRmluZCBwcmVmaXggb2YgbnVtYmVyIHRoYXQgaXMgbGFyZ2VyIAoJLy8gdGhhbiBkaXZpc29yLiAKCWludCBpZHggPSAwOyAKCWludCB0ZW1wID0gbnVtYmVyW2lkeF0gLSAnMCc7IAoJd2hpbGUgKHRlbXAgPCBkaXZpc29yKSAKCXRlbXAgPSB0ZW1wICogMTAgKyAobnVtYmVyWysraWR4XSAtICcwJyk7IAoJCgkvLyBSZXBlYXRlZGx5IGRpdmlkZSBkaXZpc29yIHdpdGggdGVtcC4gQWZ0ZXIgCgkvLyBldmVyeSBkaXZpc2lvbiwgdXBkYXRlIHRlbXAgdG8gaW5jbHVkZSBvbmUgCgkvLyBtb3JlIGRpZ2l0LiAKCXdoaWxlIChudW1iZXIuc2l6ZSgpID4gaWR4KSAKCXsgCgkJLy8gU3RvcmUgcmVzdWx0IGluIGFuc3dlciBpLmUuIHRlbXAgLyBkaXZpc29yIAoJCWFucyArPSAodGVtcCAvIGRpdmlzb3IpICsgJzAnOyAKCQkKCQkvLyBUYWtlIG5leHQgZGlnaXQgb2YgbnVtYmVyIAoJCXRlbXAgPSAodGVtcCAlIGRpdmlzb3IpICogMTAgKyBudW1iZXJbKytpZHhdIC0gJzAnOyAKCX0gCgkKCS8vIElmIGRpdmlzb3IgaXMgZ3JlYXRlciB0aGFuIG51bWJlciAKCWlmIChhbnMubGVuZ3RoKCkgPT0gMCkgCgkJcmV0dXJuICIwIjsgCgkKCS8vIGVsc2UgcmV0dXJuIGFucyAKCXJldHVybiBhbnM7IAp9IAoKLy8gRHJpdmVyIHByb2dyYW0gdG8gdGVzdCBsb25nRGl2aXNvbigpIAppbnQgbWFpbigpIAp7IAoJc3RyaW5nIG51bWJlciA9ICIxMjQ4MTYzMjY0MTI4MjU2NTEyIjsgCglpbnQgZGl2aXNvciA9IDEyNTsJIAoJY291dCA8PCBsb25nRGl2aXNpb24obnVtYmVyLCBkaXZpc29yKTsJIAoJcmV0dXJuIDA7IAp9IAo=