Pagini recente » Cod sursa (job #140570) | Cod sursa (job #728482) | Cod sursa (job #1240314) | Cod sursa (job #2728874) | Cod sursa (job #907317)
Cod sursa(job #907317)
#include<stdio.h>
#include<string.h>
long long b;
int d[17];
char a[1000000010];
long long mo()
{
long long rez=0;
for (int i=a[0];i>=1;--i)
rez=(rez*10+a[i])%b;
return rez;
}
void adun()
{
int carry=0;
for(int i=1;i<=a[0];++i)
{
int x=a[i]+d[i]+carry;
a[i]=x%10;
carry=x/10;
}
if(carry)
{
++a[0];
a[a[0]]=carry;
}
}
void afisare()
{
for(int i=a[0];i>=1;--i)
printf("%d",a[i]);
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%s",a+1);
a[0]=strlen(a+1);
if(a[0]%2==1)
{
a[a[0]/2+1]=a[a[0]/2+1]-'0';
}
for(int i=1;i<=a[0]/2;++i)
{
int x=a[i]-'0';
a[i]=a[a[0]+1-i]-'0';
a[a[0]+1-i]=x;
}
scanf("%lld",&b);
long long c=mo();
if(c==0)
{
afisare();
return 0;
}
else
{
c=b-c;
while(c)
{
++d[0];
d[d[0]]=(c)%10;
c=c/10;
}
adun();
afisare();
return 0;
}
}