Pagini recente » Cod sursa (job #331976) | Cod sursa (job #2124577) | Cod sursa (job #3159606) | Cod sursa (job #717017) | Cod sursa (job #2939496)
#include <iostream>
#include <stdio.h>
using namespace std;
char x[102],di[102];
int nr;
void readx(){
char ch;
int i=0,aux;
ch=fgetc(stdin);
while(ch!='\n'){
x[i]=ch-'0';
ch=fgetc(stdin);
i++;
}
nr=i;
i=0;
while(i<nr/2){
aux=x[i];
x[i]=x[nr-i-1];
x[nr-i-1]=aux;
i++;
}
}
bool compx(int b,int cif){
if(nr>cif)
return 0;
if(nr<cif)
return 1;
int a=0,i=nr-1;
while(i>=0){
a=a*10+x[i];
i--;
}
if(a>b)
return 0;
return 1;
}
bool compxb(int b,int cif){
if(nr>=2)
return 0;
int a=0,i=nr-1;
while(i>=0){
a=a*10+x[i];
i--;
}
if(a>1)
return 0;
return 1;
}
void imp(int b,int cif){
int i,r,a=0,nrs;
i=1;
while(i<=cif){
a=a*10+x[nr-i];
i++;
}
i=nr-i;
nrs=0;
while(i>=0){
r=a%b;
di[nrs]=a/b;
a=r*10+x[i];
nrs++;
i--;
}
di[nrs]=a/b;
i=0;
nr=nrs+1;
while(nrs>=0){
x[i]=di[nrs];
di[nrs]=0;
i++;
nrs--;
}
while(x[nr-1]==0)
nr--;
}
int main(){
int y=0,b,p,cif;
readx();
scanf("%d",&b);
p=10;
cif=1;
while(b>=p){
p*=10;
cif++;
}
if(compx(b,cif)==1){
printf("0");
}else{
while(compxb(b,cif)==0){
imp(b,cif);
y++;
}
printf("%d",y);
}
return 0;
}