Pagini recente » Cod sursa (job #2904117) | Cod sursa (job #2381574) | Cod sursa (job #695730) | Cod sursa (job #2425157) | Cod sursa (job #2076838)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
typedef int Huge;
unsigned long long D, REST;
int v[1000000], a[1000], k, kk;
char c[1000000];
void adunare(Huge a[], Huge b[])
{
int T=0;
if(b[0]>a[0])
a[0]=b[0];
for(int i=1;i<=a[0];i++)
{
a[i]+=b[i]+T;
T=a[i]/10;
a[i]%=10;
}
if(T)
a[++a[0]]=T;
}
int impartire(Huge a[], unsigned long long nr)
{
int T=0;
for(int i=a[0];i>=1;i--)
{
T=T*10+a[i];
T%=nr;
}
return T;
}
int main()
{
fin >> c;
k=strlen(c);
for(int i=k-1;i>=0;i--)
v[k-i]=c[i]-'0';
v[0]=k;
fin >> D;
REST=D-impartire(v,D);
while(REST)
{
a[++a[0]]=REST%10;
REST/=10;
}
adunare(v,a);
for(int i=v[0];i>=1;i--)
fout << v[i];
return 0;
}