Pagini recente » Cod sursa (job #2476676) | Cod sursa (job #2799238) | Cod sursa (job #2312930) | Cod sursa (job #249942) | Cod sursa (job #1748263)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int NMAX=1000005;
char s[NMAX];
class HugeN
{
private:int x[NMAX];
public:HugeN() {
memset(x,0,sizeof(x));
x[0]=1;
}
HugeN(char *s) {
int l=strlen(s);
memset(x,0,sizeof(x));
x[0]=l;
for (int i=l-1;i>=0;i--)
x[l-i]=s[i]-48;
}
long long operator %(long long k);
HugeN operator +=(long long k);
void print() {
for (int i=x[0];i>0;i--)
printf("%d", x[i]);
printf("\n");
}
};
long long HugeN::operator %(long long k){
int i;
long long r=0;
for (i=x[0];i>0;i--){
r=r*10+x[i];
r=r%k;
}
return r;
}
HugeN HugeN::operator+=(long long k){
long long tr=k,aux;
for (int i=1;i<=x[0];++i) {
aux=x[i]+tr;
x[i]=aux%10;
tr=aux/10;
}
while (tr) {
x[0]++;
x[x[0]]=tr%10;
tr=tr/10;
}
return *this;
}
int main()
{
long long d,r;
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
gets(s);
scanf("%I64d", &d);
HugeN n (s);
r=n%d;
if (r!=0)
n+=d-r;
n.print();
return 0;
}