Pagini recente » Borderou de evaluare (job #2034995) | Cod sursa (job #2763796) | Cod sursa (job #961203) | Cod sursa (job #645358) | Cod sursa (job #592962)
Cod sursa(job #592962)
#include<stdio.h>
#include<queue>
#define N 2000002
using namespace std;
queue<int> q;
int a,b,cif[N],u[N];
long long c;
bool ver[N];
int cmmdc(int a,int b) {
int t;
while(b) {
t=a%b;
a=b;
b=t;
}
return a;
}
int cmmmc(int a,int b) {
return (long long)a*b/cmmdc(a,b);
}
int main() {
long long a1,a2;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
c=cmmmc(a,b);
q.push(1); cif[1]=1; u[1]=0; ver[1]=true;
while(!ver[0]) {
a1=q.front();
q.pop();
a2=(a1*10)%c;
if(!ver[a2]) {
q.push(a2);
ver[a2]=true;
u[a2]=a1;
cif[a2]=0;
}
a2=(a2+1)%c;
if(!ver[a2]) {
q.push(a2);
ver[a2]=true;
u[a2]=a1;
cif[a2]=1;
}
}
a1=0;
while(a1!=1) {
printf("%d",cif[a1]);
a1=u[a1];
}
printf("1");
return 0;
}