Pagini recente » Cod sursa (job #2523141) | Cod sursa (job #3145944) | Cod sursa (job #1726092) | Cod sursa (job #1883875) | Cod sursa (job #1748314)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int NMAXDIGITS=1000005;
char s[1000005];
class HugeN
{
private: int x[NMAXDIGITS];
public: HugeN()
{
memset(x,0,sizeof(x));
x[0]=1;
}
HugeN(char*b)
{
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)
{
int i;
long long r=0;
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); //lld cand trimit
HugeN N(s);
r=N%d;
if(r)
{
N+=d-r;
N.print();
}
else N.print();
return 0;
}