Pagini recente » Cod sursa (job #1926018) | Cod sursa (job #675721) | Cod sursa (job #548409) | Cod sursa (job #444278) | Cod sursa (job #1425306)
#include <cstdio>
using namespace std;
#define Nmax 1000005
#define LLU unsigned long long
LLU D;
int N[Nmax];
char S[Nmax];
LLU mod( int A[], LLU B ){
int i; LLU t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
void add( int A[], LLU B ){
int i, t = 0;
for (i = 1; i <= A[0] || B || t; i++, t /= 10, B /= 10)
A[i] = (t += A[i] + B % 10) % 10;
A[0] = i - 1;
}
int main(){
freopen("next.in", "r", stdin );
freopen("next.out", "w", stdout );
fgets ( S, Nmax, stdin );
int k;
for ( k = 0; '0' <= S[k] && S[k] <= '9'; k++ );
for ( k--; k >= 0; k-- )
N[++N[0]] = S[k] - '0';
for (; N[N[0]] == 0 && N[0]; N[0]-- );
scanf(" %llu ", &D);
LLU B = (D - mod(N, D)) % D;
add(N, B);
for (int i = N[0]; i; i--)
printf("%d", N[i]);
printf("\n");
return 0;
}