Pagini recente » Cod sursa (job #1122607) | Cod sursa (job #1128843) | Cod sursa (job #2851302) | Cod sursa (job #2867749) | Cod sursa (job #37439)
Cod sursa(job #37439)
#include <stdio.h>
#define MAXL 1000005
#define LLU unsigned long long
LLU D;
int N[MAXL];
char tmp[MAXL];
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", "rt", stdin);
freopen("next.out", "wt", stdout);
fgets(tmp, MAXL, stdin);
int k;
for (k = 0; '0' <= tmp[k] && tmp[k] <= '9'; k++);
for (k--; k >= 0; k--)
N[++N[0]] = tmp[k] - '0';
for (; N[N[0]] == 0 && N[0]; N[0]--);
scanf(" %llu ", &D);
LLU B = D - mod(N, D);
add(N, B);
for (int i = N[0]; i; i--)
printf("%d", N[i]);
printf("\n");
return 0;
}