Pagini recente » Cod sursa (job #135638) | Cod sursa (job #1614639) | Cod sursa (job #2989697) | Cod sursa (job #2036143) | Cod sursa (job #1142549)
#include <cstdio>
#include <cstring>
#define base 10
#define nbase 1
using namespace std;
int A[1000005],B[1000005];
char x[1000005];
void add(int A[], int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=base)
A[i] = (t += A[i] + B[i]) % base;
A[0] = i - 1;
}
unsigned long long mod(int A[], unsigned long long B)
{
int i;
unsigned long long t=0;
for (i = A[0]; i > 0; i--)
t = (t * base + A[i]) % B;
return t;
}
int main()
{ freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%s",x);
unsigned long long m=0,i,j;
A[0]=strlen(x);
for(i=A[0];i>=1;i--)
{
A[i]=x[A[0]-i]-'0';
}
scanf("%s",x);
for(i=0;;i++)
{
m=m*10+x[i]-'0';
if(x[i+1]=='\n'||x[i+1]==0) break;
}
j=mod(A,m);
if(j!=0)
{
j=m-j;
while(j!=0)
{
B[++B[0]]=j%10;
j/=10;
}
add(A,B);
}
for(i=A[0];i>=1;i--)
{
printf("%d",A[i]);
}
}