Pagini recente » Cod sursa (job #2123614) | Cod sursa (job #420184) | Cod sursa (job #1652692) | Cod sursa (job #1725544) | Cod sursa (job #298508)
Cod sursa(job #298508)
#include <stdio.h>
struct coada
{
char c;
int r,p;
} c[2000005];
char ap[2000005],sol[2000005];
long a,b,m;
long cmmdc (long a,long b)
{
long r;
do
{
r=a%b;
a=b;
b=r;
}
while (r);
return a;
}
int main ()
{
freopen ("multiplu.in","r",stdin);
freopen ("multiplu.out","w",stdout);
scanf ("%d%d",&a,&b);
m=a*b/euclid (a,b);
int in=1,sf=1,i;
for (c[in].c=c[in].r=1; in<=sf; ++in)
{
if (!ap[(c[in].r*10)%m])
{
ap[(c[in].r*10+0)%m]=1;
c[++sf].c=0;
c[sf].r=(c[in].r*10)%m;
c[sf].p=in;
if(!c[sf].r)
break;
}
if (!ap[(c[in].r*10+1)%m])
{
ap[(c[in].r*10+1)%m]=1;
c[++sf].c=1;
c[sf].r=(c[in].r*10+1)%m;
c[sf].p=in;
if(!c[sf].r)
break;
}
}
while(sf)
{
sol[++sol[0]]=c[sf].c;
sf=c[sf].p;
}
for (i=sol[0]; i; --i)
printf ("%d",sol[i]);
}