Pagini recente » Cod sursa (job #968709) | Cod sursa (job #2571357) | Cod sursa (job #96682) | Cod sursa (job #1205962) | Cod sursa (job #1309164)
#include <bits/stdc++.h>
using namespace std;
#define Nmax 1000013
long long B,i;
int A[Nmax],F[Nmax];
string s;
void add(int A[],int B[])
{
int i,rest=0;
for (i=1;i<=A[0] || i<=B[0] || rest;++i,rest/=10)
A[i]=(rest+=A[i]+B[i])%10;
A[0]=i-1;
}
long long mod(int A[], long long B)
{
long long rest(0),i;
for (i=A[0];i>0;--i)
rest=(rest*10+A[i])%B;
return rest;
}
void assign(string s, int A[])
{
A[0]=s.size();
for (int i=0;i<A[0];++i)
A[A[0]-i]=s[i]-'0';
}
int main(void)
{
ifstream in("next.in");
ofstream out("next.out");
getline(in,s); assign(s,A);
in>>B;
long long modulo=(B-mod(A,B))%B;
while(modulo)
{
F[++F[0]]=modulo%10;
modulo/=10;
}
add(A,F);
for (i=A[0];i>=1;--i) out<<A[i];
return 0;
}