Pagini recente » Cod sursa (job #729858) | Cod sursa (job #604753) | Cod sursa (job #1117388) | Cod sursa (job #2475922) | Cod sursa (job #2265169)
#include <iostream>
#include <fstream>
#include <cstring>
#define L 10000010
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
long long k;
int v[L], a[L];
char c[L];
void impartire(long long D, long long& R)
{
long long T=0;
for(int i=v[0]; i>=1; i--)
{
T=T*10+v[i];
T%=D;
}
R=D-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, R;
fin >> D;
impartire(D,R);
if(R!=D)
{
while(R)
a[++a[0]]=R%10, R/=10;
adunare();
}
for(int i=v[0]; i>=1; i--)
fout << v[i];
return 0;
}