Pagini recente » Cod sursa (job #2673546) | Cod sursa (job #2961391) | Cod sursa (job #2999372) | Cod sursa (job #1430386) | Cod sursa (job #2393879)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int NMAX = 1000005;
int rest_impart_huge_int(int a[],int k)
{
int i,r=0;
for(i = a[0];i >= 1;i--)
{
r = r * 10 + a[i];
r = r % k;
}
return r;
}
void h_adun_huge_int(int a[],long long k)
{
int tr = 0,co,i = 1,nr;
co = k;
nr = a[0];
while(nr)
{
a[i] = a[i] + co % 10 + tr;
if(co > 0)
co = co / 10;
tr = 0;
if(a[i] > 9)
{
tr = 1;
a[i] = a[i] % 10;
}
i++;
nr--;
}
if(tr)
a[++a[0]] = tr;
}
int main()
{
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
char ch;
int a[NMAX],i,r;
long long d;
memset(a,0,sizeof(a));
while(scanf("%c",&ch) == 1 && ch != '\n')
{
if(ch >= '0' && ch <= '9')
a[++a[0]] = ch - '0';
}
reverse(a + 1,a + a[0] + 1);
scanf("%I64d",&d);
r = rest_impart_huge_int(a,d);
if(r)
{
r = d - r;
h_adun_huge_int(a,r);
}
for(i = a[0];i >= 1;i--)
printf("%d",a[i]);
return 0;
}