Pagini recente » Cod sursa (job #734381) | Cod sursa (job #2788367) | Cod sursa (job #2475528) | Cod sursa (job #1687587) | Cod sursa (job #527660)
Cod sursa(job #527660)
# include <fstream>
using namespace std;
std :: ifstream f ("next.in");
std :: ofstream g ("next.out");
char c;
short a[1000100];
long long l;
long long nn;
long long D;
inline bool cifra (char c){
if (c >= '0' && c <= '9') return true;
return false;
}
long long mod (short A[], long long B){
long long i, t = 0;
for (i = l; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void suma (short A[], short B[]){
long long i, t = 0;
for (i = 1; i <= l || i <= B[0] || t; i++, t /= 10)
A[i] = (t += A[i] + B[i]) % 10;
l = i - 1;
}
short x[30];
int main (){
while (cifra (c = f.get ())){
a[++l] = c - '0';
}
for (int i = 1, lim = (l >> 1); i <= lim; ++i){
short x = a[i];
a[i] = a[l - i + 1];
a[l - i + 1] = x;
}
f >> D;
nn = mod (a, D);
if (!nn){
for (long long i = l; i > 0; --i)
g << a[i];
return 0;
}
nn = D - nn;
while (nn){
x[++x[0]] = nn % 10;
nn = nn / 10;
}
suma (a, x);
for (long long i = l; i > 0; --i)
g << a[i];
g.close ();
return 0;
}