Pagini recente » Cod sursa (job #62963) | Cod sursa (job #319483) | Cod sursa (job #222886) | Cod sursa (job #38204)
Cod sursa(job #38204)
#include <stdio.h>
#include <string.h>
#define ll unsigned long long
#define NMax 1000005
int N; char S[NMax];
short int X[NMax], Y[20];
ll D;
int main(void)
{
int i, j, c1, c2, t = 0; ll RST = 0;
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
fgets(S, NMax, stdin);
N = strlen(S);
while (S[N-1] < '0' || S[N-1] > '9') N--;
scanf("%lld", &D);
for (i = 0; i < N; i++)
RST = (RST * 10 + (S[i] - '0')) % D;
if (RST == 0)
printf("%s\n", S);
else
{
RST = D - RST;
for (; RST; RST /= 10)
Y[++Y[0]] = RST % 10;
for (i = 0; i < N; i++)
X[N-i] = S[i]-'0';
for (i = 1; i <= N || i <= Y[0] || t; i++, t /= 10)
{
if (i > N) c1 = 0; else c1 = X[i];
if (i > Y[0]) c2 = 0; else c2 = Y[i];
X[i] = (t += c1 + c2) % 10;
}
for (j = i-1; j >= 1; j--)
printf("%d", X[j]);
printf("\n");
}
return 0;
}