Pagini recente » Cod sursa (job #26737) | Cod sursa (job #2803838) | Cod sursa (job #2376115) | Cod sursa (job #3283300) | Cod sursa (job #38416)
Cod sursa(job #38416)
#include <stdio.h>
#include <string>
using namespace std;
#define in "next.in"
#define out "next.out"
#define dim 1000001
int size, nr[23];
int A[dim];
long long d;
char c[dim];
int main()
{
FILE *fin = fopen(in,"r");
freopen(out,"w",stdout);
fgets(c,dim,fin);
fscanf(fin,"%lld", &d);
size = strlen(c)-2;
int i;
for (i = 0; i <= size; i++ )
A[size-i+1] = (int)c[i]-48;
A[0] = size+1;
long long t = 0;
for (i = A[0]; i >= 1; i-- )
{
t = (t * 10 + A[i] ) % d;
}
if ( t == 0 )
{
for ( i = 0, printf("%c",c[i]); i < size; i++ , printf("%c",c[i])) ;
}
else
{
nr[0] = 0;
t = d-t;
int i;
while ( t ) { nr[0]++, nr[nr[0]] = t % 10, t /= 10; };
t = 0;
for (i=1; i<=A[0] || i<=nr[0] || t; i++, t/=10)
A[i] = (t += A[i] + nr[i]) % 10;
A[0] = i - 1;
for ( int i = A[0]; i >= 1; i-- )
printf("%d", A[i]);
}
}