Pagini recente » Cod sursa (job #2304510) | Cod sursa (job #1232659) | Cod sursa (job #2650501) | Cod sursa (job #365975) | Cod sursa (job #575324)
Cod sursa(job #575324)
#include<stdio.h>
#define M 2000010
int a,b,d, que[M], tata[M], semn[M], low=1, high=1 , akt, nr,i, rez[M];
bool viz[M];
int cmmd(int a, int b)
{
if(!b)
return a;
else return cmmd(b, a%b);
}
int main()
{
freopen("multiplu.in", "r", stdin);
freopen("multiplu.out", "w", stdout);
scanf("%d%d", &a, &b);
if(a>b)
{
d=a;
a=b;
b=d;
}
d=cmmd(a,b);
d=a*b/d;
que[1]=1;
semn[1]=1;
tata[1]=-1;
viz[1]=true;
while(!viz[0])
{
akt=que[low];
if(!viz[akt*10%d])
{
viz[akt*10%d]=true;
que[++high]=akt*10%d;
tata[high]=low;
}
if(!viz[(akt*10+1)%d]&&!viz[0])
{
viz[(akt*10+1)%d]=true;
que[++high]=(akt*10+1)%d;
tata[high]=low;
semn[high]=1;
}
low++;
}
akt=high;
while(akt!=-1)
{
rez[++nr]=semn[akt];
akt=tata[akt];
}
for(i=nr;i>=1;i--)
printf("%d", rez[i]);
return 0;
}