Pagini recente » Cod sursa (job #2497437) | Cod sursa (job #2568959) | Cod sursa (job #167157) | Cod sursa (job #2808018) | Cod sursa (job #244115)
Cod sursa(job #244115)
#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 viz[2000002];
COADA q[2000002];
int main()
{
char sol[2000002];
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;
}