Pagini recente » Cod sursa (job #800892) | Istoria paginii runda/asdfghjkl | Cod sursa (job #3185091) | Cod sursa (job #989212) | Cod sursa (job #1426428)
#include <cstdio>
#include <cstring>
#include <algorithm>
#define Nmax 1000004
#define ull unsigned long long
using namespace std;
int n, i, j, v[Nmax], w[25];
ull k;
char s[Nmax];
void add(int A[], int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
{
if (i > 9) B[i] = 0;
A[i] = (t += A[i] + B[i]) % 10;
}
A[0] = i - 1;
}
ull mod(int A[], ull B)
{
ull i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) * 1LL % B;
return t;
}
int main()
{
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
gets(s + 1);
v[0] = strlen(s + 1);
for (i = 1; i <= v[0]; ++i)
v[v[0] - i + 1] = s[i] - '0';
scanf("%lld", &k);
ull val = mod(v, k);
if (val != 0) val = k - val;
while (val)
{
w[ ++ w[0]] = val % 10;
val /= 10;
}
add(v, w);
for (i = v[0]; i >= 1; --i)
printf("%d", v[i]);
return 0;
}