Pagini recente » Cod sursa (job #939269) | Cod sursa (job #1553593) | Cod sursa (job #2388275) | Cod sursa (job #2031348) | Cod sursa (job #148474)
Cod sursa(job #148474)
#include<fstream.h>
#define max 2000
long uz[max], a, b, m;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
void cmmmc(long a, long b, long & m);
long cmmdc(long a, long b);
void solve();
int main()
{ f>>a>>b;
cmmmc(a, b, m);
solve();
return 0;
}
void cmmmc(long a, long b, long & m)
{ m=cmmdc(a, b);
m=a/m;
m=m*b;
}
long cmmdc(long a, long b)
{ if(a==0)
return b;
if(b==0)
return a;
if(a>b)
return cmmdc(a%b, b);
else
return cmmdc(a, b%a);
}
void solve()
{ struct
{ long x, bk, mod;
} c[max];
long p, u, k, bk, mod, i, md;
p=1; u=1;
c[p].x=1; c[p].bk=-1; c[p].mod=1; uz[1]=1;
while(p<=u)
{ mod=c[p].mod;
for(i=0; i<=1; i++)
{ md=(mod*10+i)%m;
if(uz[md]==0)
{ u++;
c[u].x=i;
c[u].mod=md;
c[u].bk=p;
uz[md]=1;
}
if(uz[0]==1)
break;
}
if(uz[0]==1)
break;
p++;
}
k=0; uz[k]=c[u].x; bk=c[u].bk;
while(bk>0)
{ k++;
uz[k]=c[bk].x;
bk=c[bk].bk;
}
for(i=k; i>=0; i--)
{ g<<uz[i];
}
g<<'\n';
}