Pagini recente » Cod sursa (job #1667626) | Cod sursa (job #2362461) | Cod sursa (job #2846496) | Cod sursa (job #369645) | Cod sursa (job #1402557)
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 2000005
using namespace std;
int i,j,a,b,p,m;
int w[Nmax],W[Nmax];
int V[Nmax],sol[Nmax];
int cmmdc(int d,int i)
{
int r=d%i;
while (r)
d=i,i=r,r=d%i;
return i;
}
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d %d",&a,&b);
if (a<b) swap(a,b);
m=(a*b)/cmmdc(a,b);
w[1]=2;
V[++V[0]]=1;
while (!w[0])
{
for (i=1;i<=V[0];i++)
{
if (!w[(V[i]*10)%m])
{
w[(V[i]*10)%m]=1;
W[(V[i]*10)%m]=V[i];
V[++V[0]]=(V[i]*10)%m;
if (w[0]) break;
}
if (!w[((V[i]*10)+1)%m])
{
w[((V[i]*10)+1)%m]=2;
W[((V[i]*10)+1)%m]=V[i];
V[++V[0]]=((V[i]*10)+1)%m;
if (w[0])
break;
}
}
}
i=V[V[0]];
do
{
sol[++sol[0]]=w[i]-1;
i=W[i];
}while(i);
for (i=sol[0];i>=1;i--)
printf("%d",sol[i]);
return 0;
}