Pagini recente » Cod sursa (job #1070184) | Cod sursa (job #2044836) | Cod sursa (job #492225) | Cod sursa (job #918327) | Cod sursa (job #1540277)
#include <cstdio>
using namespace std;
const int NMAX=2000000+5;
struct ABC
{
int c,r,t;
};
ABC q[NMAX];
int cmmdc(int a,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int cmmmc(int a,int b)
{
int prod=a*b;
int M=cmmdc(a,b);
return prod/M;
}
bool viz[NMAX];
int v[NMAX];
int main()
{
int a,b,p,u;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
int m=cmmmc(a,b);
q[1].c=1;
q[1].r=1;
q[1].t=0;
p=u=1;
viz[1]=1;
while(p<=u)
{
if(viz[(q[p].r*10)%m]==0){
viz[(q[p].r*10)%m]=1;
q[++u].r=(q[p].r*10)%m;
q[u].c=0;
q[u].t=p;
if(viz[0]==1)
break;
}
if(viz[(q[p].r*10+1)%m]==0)
{
viz[(q[p].r*10+1)%m]=1;
q[++u].r=(q[p].r*10+1)%m;
q[u].c=1;
q[u].t=p;
if(viz[0]==1)
break;
}
++p;
}
int k=1;
for(k=1;u;u=q[u].t,++k)
v[k]=q[u].c;
--k;
while(k>0){
printf("%d",v[k]);
--k;
}
printf("\n");
return 0;
}