Pagini recente » Cod sursa (job #163671) | Cod sursa (job #2692869) | Cod sursa (job #362499) | Cod sursa (job #1689029) | Cod sursa (job #593305)
Cod sursa(job #593305)
#include<stdio.h>
int u[2000001],pred[2000001],c[2000001],x;
int cmmdc(int a, int b)
{
int c;
while(b)
{
c=a%b;
a=b;
b=c;
}
return a;
}
void afisare(int p)
{
if (p!=1)
afisare(pred[p]);
printf("%d",u[p]);
}
int main()
{
int a,b,p,st,dr,i;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
x=(a/cmmdc(a,b))*b;
for(i=0;i<x;++i)
u[i]=pred[i]=-1;
u[1]=1;
pred[1]=0;
c[1]=1;
st=dr=1;
while (st<=dr)
{
p=(c[st]*10)%x;
if (pred[p]==-1)
{
pred[p]=c[st];
u[p]=0;
c[++dr]=p;
}
p=(c[st]*10 +1)%x;
if (pred[p]==-1)
{
pred[p]=c[st];
u[p]=1;
c[++dr]=p;
}
if (pred[0]!=-1)
break;
++st;
}
afisare(0);
}