Pagini recente » Cod sursa (job #1157055) | Cod sursa (job #2922229) | Cod sursa (job #2611151) | Cod sursa (job #1616560) | Cod sursa (job #44675)
Cod sursa(job #44675)
#include <stdio.h>
#include <string.h>
#define NMAX 490000
long a[NMAX];
long long d;
long long r;
void read()
{
long i;
char c[NMAX];
long n;
scanf("%s\n", c);
n = strlen(c)-1;
//a[a[0]] = n-1;
do
{
//scanf("%c", &c);
if(c[n] != '\n')
{
a[ ++a[0] ] = c[n--] - '0';
}
} while(n > -1);
scanf("%lld\n", &d);
}
long long rest(long long d)
{
long long t;
long long i;
for(i = a[0], t = 0; i; --i)
{
t = (t * 10 + a[i]) % d;
}
return t;
}
void adunare(long long d)
{
long long i, t, r = 0;
long b[9000];
memset(b, 0, sizeof(b));
while(d)
{
r = r*10 + d%10;
d /= 10;
}
d = r;
while(d)
{
b[ ++b[0] ] = d % 10;
d /= 10;
}
for(i = 1, t = 0; i <= a[0] || i <= b[0] || t; ++i, t /= 10)
{
a[i] = (t += a[i] + b[i]) % 10;
}
a[i] = i-1;
}
void write()
{
long i;
for(i = a[0]; i; --i)
{
printf("%ld", a[i]);
}
printf("\n");
}
int main()
{
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
read();
adunare((d - rest(d)) % d);
//int aux = rest(d);
write();
fclose(stdin);
fclose(stdout);
return 0;
}