Pagini recente » Cod sursa (job #2611424) | Cod sursa (job #2579435) | Cod sursa (job #2953330) | Cod sursa (job #503329) | Cod sursa (job #2083576)
#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(unsigned long long D, unsigned long long& R)
{
int 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';
unsigned 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;
}