Pagini recente » Cod sursa (job #2440558) | Cod sursa (job #3196597) | Cod sursa (job #1788432) | Cod sursa (job #1766183) | Cod sursa (job #176527)
Cod sursa(job #176527)
#include<stdio.h>
int rest[2000001], que[2000001],n,m,val,cap,coada,s[2000001];
char cif[2000001],pt[2000001];
int pt0, r, d;
int val1,val2,k,i;
int cmmdc(int a,int b) {
if (b==0)
return a;
else
return cmmdc(b,a%b);
//return 0;
}
int main() {
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d %d",&n,&m);
val=cmmdc(n,m);
// d = m, i = n;
// do {
// r = d%i; d = i; i = r;
// } while (r != 0);
// val = d;
val=(n*m)/val;
rest[1]=1;
que[1]=1;
cap=1;
coada=1;
while (1) {
val1=(que[cap]*10)%val;
val2=(que[cap]*10+1)%val;
if (rest[val1]==0) {
coada++;
s[coada]=cap;
cif[coada]=0;
que[coada]=val1;
rest[val1]=1;
}
if (rest[0]==1)
break;
if (rest[val2]==0) {
coada++;
s[coada]=cap;
cif[coada]=1;
que[coada]=val2;
rest[val2]=1;
}
if (rest[0]==1)
break;
cap++;
}
k=coada;
while (k!=1) {
pt[pt0++]=cif[k];
k=s[k];
}
pt[pt0++]=1;
for (i=pt0-1;i>=0;i--)
printf("%d",pt[i]);
return 0;
}