Pagini recente » Cod sursa (job #1673758) | Cod sursa (job #2091310) | Cod sursa (job #56848) | Cod sursa (job #2762813) | Cod sursa (job #926586)
Cod sursa(job #926586)
#include<stdio.h>
using namespace std;
struct coada
{
int c,r,t;
};
coada q[10004];
char f[2000000];
int sol[10004];
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int a,b,r,ca,cb,cm,i,newr,p,u;
scanf("%d%d",&a,&b);
ca=a;
cb=b;
while(b)
{
r=a%b;
a=b;
b=r;
}
cm=(ca*cb)/a;
q[1].c=1;
q[1].r=1;
p=u=1;
while(p<=u)
{
newr=(q[p].r*10+0)%cm;
if(newr==0)
{
sol[1]=0;
sol[0]=1;
while(q[p].t!=0)
{
sol[++sol[0]]=q[p].c;
p=q[p].t;
}
sol[++sol[0]]=1;
break;
}
if(f[newr]==0)
{
q[++u].c=0;
q[u].t=p;
q[u].r=newr;
}
newr=(q[p].r*10+1)%cm;
if(newr==0)
{
sol[1]=1;
sol[0]=1;
while(q[p].t!=0)
{
sol[++sol[0]]=q[p].c;
p=q[p].t;
}
sol[++sol[0]]=1;
break;
}
if(f[newr]==0)
{
q[++u].c=1;
q[u].t=p;
q[u].r=newr;
}
p++;
}
for(i=sol[0];i>=1;i--)
printf("%d",sol[i]);
printf("\n");
return 0;
}