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