Pagini recente » Borderou de evaluare (job #202280) | Cod sursa (job #3196194) | Cod sursa (job #896981) | Cod sursa (job #3246666) | Cod sursa (job #37452)
Cod sursa(job #37452)
#include <stdio.h>
#include <string.h>
char s[1000001];
int a[1000001], b[20];
int l,i;
long long m,d;
void add(int A[], int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
void mod()
{
int i;
for (i = a[0]; i > 0; --i)
m = (m * 10 + a[i]) % d;
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%s",&s);
scanf("%lld",&d);
l=strlen(s);
a[0]=l;
for (i=0; i<l; ++i) a[l-i]=s[i]-'0';
mod();
m=d-m;
i=0;
while (m>0)
{
b[++i]=m%10;
m/=10;
}
b[0]=i;
add(a,b);
for (i=a[0]; i>0; --i) printf("%d",a[i]);
printf("\n");
return 0;
}