Pagini recente » Cod sursa (job #402615) | Cod sursa (job #469741) | Cod sursa (job #2174026) | Cod sursa (job #660085) | Cod sursa (job #1540283)
#include <cstdio>
using namespace std;
struct CRT {
bool c;
int r, t;
};
int cmmmc ( int a, int b ){
int r, ca, cb, cmmdc, rez;
ca = a;
cb = b;
while ( b ){
r = a % b;
a = b;
b = r;
}
cmmdc = a;
rez = ca * cb / cmmdc;
return rez;
}
CRT q[2000005];
bool viz[2000005], v[2000005];
int main()
{
freopen ( "multiplu.in","r",stdin );
freopen ( "multiplu.out","w",stdout );
int a, b, m, ok = 0, p, u, rest, cif, pas, i, i1;
scanf ( "%d%d",&a,&b );
m = cmmmc ( a, b );
q[1].c = 1;
q[1].r = q[1].c % m;
viz[q[1].r] = 1;
p = 1;
u = 1;
pas = 0;
while ( p <= u ){
cif = 0;
rest = ( q[p].r * 10 + cif ) % m;
if ( !viz[rest] ){
u++;
q[u].c = cif;
q[u].r = rest;
q[u].t = p;
viz[rest] = 1;
if ( !rest )
break;
}
cif = 1;
rest = ( q[p].r * 10 + cif ) % m;
if ( !viz[rest] ){
u++;
q[u].c = cif;
q[u].r = rest;
q[u].t = p;
viz[rest] = 1;
if ( !rest )
break;
}
p++;
}
i1 = 1;
for ( i = u ; i >= 1 ; i = q[i].t )
v[i1++] = q[i].c;
i1--;
for ( i = 1 ; i <= i1 ; i++ )
printf ( "%d",v[i] );
return 0;
}