Pagini recente » Cod sursa (job #2573491) | Cod sursa (job #2600714) | Cod sursa (job #2005347) | Cod sursa (job #1079531) | Cod sursa (job #1414866)
#include <algorithm>
#include <vector>
#include <cstdio>
using namespace std;
struct MULTIPLU
{
bool c;
int r,t;
};
MULTIPLU q[2000005];
bool fr[2000005];
int sol[2000005];
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int a,b,rest,ca,cb,cmmmc;
scanf("%d%d",&a,&b);
ca=a;
cb=b;
while(cb)
{
rest=ca%cb;
ca=cb;
cb=rest;
}
cmmmc=a*b/ca;
int i=2,p,u,r1;
p=u=1;
q[1].r=1;
q[1].c=1;
q[1].t=0;
fr[1]=1;
int r0;
while(p<=u)
{
r0=(q[p].r*10+0)%cmmmc;
if(fr[r0]==0)
{
++u;
q[u].c=0;
q[u].r=r0;
q[u].t=p;
fr[r0]=1;
}
if(r0==0)
break;
r1=(q[p].r*10+1)%cmmmc;
if(fr[r1]==0)
{
++u;
q[u].c=1;
q[u].r=r1;
q[u].t=p;
fr[r1]=1;
}
if(r1==0)
break;
p++;
}
int num=0;
while(u>0)
{
sol[++num]=q[u].c;
u=q[u].t;
}
for(i=num; i>=1; --i)
printf("%d",sol[i]);
return 0;
}