Pagini recente » Cod sursa (job #970813) | Cod sursa (job #2000520) | Cod sursa (job #245326) | Cod sursa (job #82451) | Cod sursa (job #2393884)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX=1000007;
int a[NMAX],b[20];
void print(int a[]){
int i;
for(i=a[0];i>=1;--i)
printf("%d",a[i]);
printf("\n");
}
long long h_rest_impartire_k(int a[],long long k){
int i;
long long r;
r=0;
for(i=a[0];i>=1;--i){
r=r*10+a[i];
r=r%k;
}
return r;
}
void h_adun(int a[],int k){
int i,tr;
while(k){
b[++b[0]]=k%10;
k/=10;
}
print(b);
a[0]=max(a[0],b[0]);
tr=0;
for(i=1;i<=a[0];++i){
a[i]=a[i]+b[i]+tr;
tr=0;
if(a[i]>=10){
a[i]=a[i]%10;
tr=1;
}
}
if(tr){
a[++a[0]]=1;
}
}
int main(){
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
int d,r;
char ch;
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("%d",&d);
r=h_rest_impartire_k(a,d);
if(r){
h_adun(a,d-r);
}
print(a);
return 0;
}