Pagini recente » Cod sursa (job #3146553) | Cod sursa (job #486213) | Cod sursa (job #471959) | Cod sursa (job #45209) | Cod sursa (job #45215)
Cod sursa(job #45215)
#include <stdio.h>
#include <string.h>
int A[1000005],B[1000005];
int mod(int b)
{
int i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % b;
return t;
}
void add()
{
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 invert (char B[],int x)
{
int i;
for (i=x-2; i>=0; i--)
A[x-i-1]=B[i]-'0';
A[0]=x-1;
}
int main()
{
int x,i;
long long b=0,c;
char nrmare[1000005];
FILE *in=fopen("next.in","r");
fgets(nrmare,1005,in);
x=strlen(nrmare);
invert(nrmare,x);
fgets(nrmare,1005,in);
x=strlen(nrmare);
fclose(in);
i=0;
while (i<=x-2)
{
b=b*10+nrmare[i]-'0';
i++;
}
c=mod(b);
c=(b-c)%b;
i=1;
while (c)
{
B[i]=c%10;
c/=10;
i++;
}
B[0]=i-1;
add();
FILE *out=fopen("next.out","w");
for (i=A[0]; i>=1; i--)
fprintf(out,"%d",A[i]);
fprintf(out,"\n");
fclose(out);
return 0;
}