Pagini recente » Cod sursa (job #1994741) | Cod sursa (job #2202206) | Cod sursa (job #2810745) | Cod sursa (job #2001013) | Cod sursa (job #1748238)
#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 >= 1;i--)
printf("%d",x[i]);
printf("\n");
}
};
long long HugeN::operator%(long long k)
{
long long r = 0;
int i;
for(i = x[0];i >= 1;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()
{
freopen("next.in", "r",stdin);
freopen("next.out", "w",stdout);
long long d,r;
gets(s);
scanf("%lld", &d);
HugeN N(s);
r = N % d;
if(r)
N += d - r;
N.print();
return 0;
}