Pagini recente » Cod sursa (job #1760472) | Cod sursa (job #83743)
Cod sursa(job #83743)
#include <stdio.h>
#define infile "next.in"
#define outfile "next.out"
#define nmax 1000001
int n[nmax];
long long d, d2, i, rest;
void readdata();
void solve();
void writedata();
void add();
int main()
{
readdata();
solve();
writedata();
return 0;
}
void readdata()
{
int temp;
freopen(infile, "r", stdin);
char c='a';
while (1)
{
scanf("%c", &c);
if (c>='0' && c<='9')
n[++n[0]]=c-'0';
else break;
}
for (i=1; i<=n[0]/2; i++)
{
temp=n[i];
n[i]=n[n[0]-i+1];
n[n[0]-i+1]=temp;
}
scanf("%Ld", &d);
fclose(stdin);
}
void add()
{
long i, t = 0;
for (i=1; i<=n[0] || d2 || t; i++, t/=10, d2/=10)
n[i] = (t += n[i] + d2%10) % 10;
n[0] = i - 1;
}
int mod()
{
long i, t = 0;
for (i = n[0]; i > 0; i--)
t = (t * 10 + n[i]) % d;
return t;
}
void sub()
{
long i, t = 0;
for (i = 1; i <= n[0]; i++, rest/=10)
n[i] += (t = (n[i] -= rest%10 + t) < 0) * 10;
for (; n[0] > 1 && !n[n[0]]; n[0]--);
}
void solve()
{
d2=d;
add();
rest=mod();
sub();
}
void writedata()
{
freopen(outfile, "w", stdout);
for (i=n[0]; i>0; i--) printf("%d", n[i]);
fclose(stdout);
}