Pagini recente » Cod sursa (job #489520) | Cod sursa (job #178453) | Cod sursa (job #189269) | Cod sursa (job #752122) | Cod sursa (job #464115)
Cod sursa(job #464115)
#include <cstdio>
#include <cstring>
#define file_in "next.in"
#define file_out "next.out"
int n;
long long r,d,x;
char s[1012000];
int v[1012000];
int v1[1020000];
void citire()
{
int i,st,dr,aux;
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
gets(s);
n=strlen(s);
for (i=0;i<n;++i)
v[i+1]=s[i]-'0';
//inverseaza vectoru
st=1;
dr=n;
while(st<=dr)
{
aux=v[st];
v[st]=v[dr];
v[dr]=aux;
st++;
dr--;
}
scanf("%lld", &d);
}
long long mod(int a[], long long b)
{
int i,t=0;
for (i=a[0];i>=1;--i)
t=(t*10+a[i])%b;
return t;
}
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 solve()
{
int i;
v[0]=n;
r=mod(v,d);
//printf("%lld\n", r);
x=(d-r)%d;
//printf("%lld\n", x);
int nr=0;
while(x)
{
v1[++nr]=x%10;
x/=10;
}
v1[0]=nr;
add(v,v1);
for (i=v[0];i>=1;--i)
printf("%d", v[i]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}