Pagini recente » Cod sursa (job #2305619) | Cod sursa (job #78596) | Cod sursa (job #2321750) | Cod sursa (job #471269) | Cod sursa (job #1758543)
#include <cstdio>
#include <algorithm>
#include <string.h>
using namespace std;
char s[1000005];
int v[1000005];
int nxt[25];
void add(){
int i,T;
T = 0;
for(i = 1;i <= nxt[0] || T;i++){
v[i] += nxt[i] + T;
T = v[i]/10;
v[i] %= 10;
}
if(T){
v[++v[0]] = T;
}
}
int divide(long long unsigned x){
int i;
long long unsigned R = 0;
for(i = v[0];i >= 1;i--){
R = 10*R + v[i];
R %= x;
}
return R;
}
void mult(long long unsigned x){
int i;
long long unsigned T = 0;
for(i = 1;i <= v[0];i++){
v[i] = v[i]*x + T;
T = v[i]/10;
v[i] %= 10;
}
while(T){
v[++v[0]] = T%10;
T /= 10;
}
}
int main()
{
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
scanf("%s", s+1);
v[0] = strlen(s+1);
int i;
long long unsigned d;
scanf("%llu", &d);
for(i = 1;i <= v[0];i++){
v[i] = (s[v[0] - i + 1] - '0');
}
int R = divide(d);
if(R){
long long unsigned n = d-R;
while(n){
nxt[++nxt[0]] = n%10;
n /= 10;
}
add();
}
for(i = v[0];i >= 1;i--){
printf("%d", v[i]);
}
return 0;
}