Pagini recente » Cod sursa (job #2042124) | Cod sursa (job #2237339) | Cod sursa (job #2171479) | Cod sursa (job #154585) | Cod sursa (job #260184)
Cod sursa(job #260184)
#include<stdio.h>
#include<string.h>
#define N 1000007
char s[N];
int n[N];
long long d;
void div(int A[],long long B){
long long i,t=0;
for(i=A[0];i;--i,t%=B)
A[i]=(t=t*10+A[i])/B;
for(;A[0]>1&&!A[A[0]];--A[0]);
}
void mul(int A[],long long B){
long long i,t=0;
for(i=1;i<=A[0]||t;++i,t/=10)
A[i]=(t+=A[i]*B)%10;
A[0]=i-1;
}
long long mod(int A[],long long B){
long long 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,q;
q=strlen(s);
while(s[i]){
k++;
n[q-k+1]=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("%lld",&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;
}