Pagini recente » Rezultatele filtrării | Borderou de evaluare (job #859393) | Cod sursa (job #20474) | Rezultatele filtrării | Cod sursa (job #1540264)
#include <cstdio>
using namespace std;
struct multiplu{
bool c;
int r,t;
};
int cmmmc(int a,int b){
int ca,cb,r,cmmdc;
ca=a;
cb=b;
while (b){
r=a%b;
a=b;
b=r;
}
cmmdc=a;
return ca*cb/cmmdc;
}
multiplu q[2000005];
bool viz[2000005];
char v[40];
int main(){
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int a,b,m,p,u,rest,x=0;
scanf("%d%d",&a,&b);
m=cmmmc(a,b);
p=1;
u=1;
q[1].c=1;
q[1].r=q[1].c%m;
q[1].t=0;
while (q[u].r>0){
rest=(q[p].r*10)%m;
if (viz[rest]==0){
viz[rest]=1;
u++;
q[u].c=0;
q[u].r=rest;
q[u].t=p;
}
rest=(q[p].r*10+1)%m;
if (viz[rest]==0){
viz[rest]=1;
u++;
q[u].c=1;
q[u].r=rest;
q[u].t=p;
}
p++;
}
x=0;
while (u>0){
v[x++]=q[u].c;
u=q[u].t;
}
x--;
while (x>-1)
printf("%d",v[x--]);
return 0;
}