Pagini recente » Cod sursa (job #1223707) | Cod sursa (job #3137118) | Cod sursa (job #196467) | Cod sursa (job #1372525) | Cod sursa (job #244059)
Cod sursa(job #244059)
#include<stdio.h>
struct COADA
{ char c; long r,p;};
long cmmdc(long a,long b)
{
long r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
long i,a,b,u,p,cmmmc;
char sol[2000002],viz[2000002];
COADA q[2000002];
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%ld%ld",&a,&b);
cmmmc=(a*b)/cmmdc(a,b);
p=u=1;
q[1].c=1;
q[1].r=1;
q[1].p=0;
while(p<=u)
{
if(viz[q[p].r*10+0)%cmmmc]==0)
{
viz[q[p].r*10+0)%cmmmc]=1;
u++;
q[u].c=0;
q[u].r=(q[p].r*10+0)%cmmmc;
q[u].p=p;
if(q[u].r==0)
break;
}
if(viz[q[p].r*10+1)%cmmmc]==0)
{
viz[q[p].r*10+1)%cmmmc]=1;
u++;
q[u].c=1;
q[u].r=(q[p].r*10+1)%cmmmc;
q[u].p=p;
if(q[u].r==0)
break;
}
p++;
}
sol[0]=0;
while(u!=0)
{
sol[++sol[0]]=q[u].c;
u=q[u].p;
}
for(i=sol[0];i>=1;i--)
printf("%d",sol[i]);
return 0;
}