Pagini recente » Cod sursa (job #2895579) | Cod sursa (job #2488415) | Cod sursa (job #936232) | Cod sursa (job #2895583) | Cod sursa (job #2083553)
#include <iostream>
#include <fstream>
#include <cstring>
#define L 10000010
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
int v[L], a[L], k;
char c[L];
int impartire(long long D)
{
int T=0;
for(int i=v[0]; i>=1; i--)
{
T=T*10+v[i];
T%=D;
}
return T;
}
void adunare()
{
int T=0;
if(a[0]>v[0])
v[0]=a[0];
for(int i=1; i<=v[0]; i++)
{
v[i]+=a[i]+T;
T=v[i]/10;
v[i]%=10;
}
if(T)
v[++v[0]]=T;
}
int main()
{
fin >> c;
k=strlen(c);
v[0]=k;
for(int i=k-1; i>=0; i--)
v[k-i]=c[i]-'0';
long long D;
fin >> D;
if(impartire(D))
{
D=D-impartire(D);
while(D)
a[++a[0]]=D%10, D/=10;
adunare();
}
for(int i=v[0]; i>=1; i--)
fout << v[i];
return 0;
}