Pagini recente » Cod sursa (job #3037938) | Cod sursa (job #1083265) | Monitorul de evaluare | Cod sursa (job #200325) | Cod sursa (job #260166)
Cod sursa(job #260166)
#include<stdio.h>
#include<string.h>
#define N 1000007
char s[N];
int n[N];
int d;
void div(int A[], int B){
int i,t=0;
for(i=A[0];i>0;--i,t%=B)
A[i]=(t=t*10+A[i])/B;
for(;A[0]>1&&!A[A[0]];--A[0]);
}
void mul(int A[],int B){
int i,t=0;
for(i=1;i<=A[0]||t;++i,t/=10)
A[i]=(t+=A[i]*B)%10;
A[0]=i-1;
}
int mod(int A[],int B){
int i,t=0;
for(i=A[0];i>0;--i)
t=(t*10+A[i])%B;
return t;
}
void form(){
int i=0,k=0;
while(s[i]){
k++;
n[k]=s[i]-'0';
i++;
}
n[0]=k;
}
int main(){
int i,t=0;
freopen("next.in","r",stdin);
freopen("next.out","w",stdout);
scanf("%s",s);
form();
scanf("%d",&d);
if(mod(n,d)==0)
for(i=n[0];i;--i)
printf("%d",n[i]);
else{
div(n,d);
n[1]++;
n[1]%=10;
t=n[1]/10;
for(i=2;i<=n[0]||t;++i)
n[i]=t+n[i],t=n[i]/10;
n[0]=i-1;
mul(n,d);
for(i=n[0];i>0;--i)
printf("%d",n[i]);
}
fclose(stdin);
fclose(stdout);
return 0;
}