Pagini recente » Cod sursa (job #3125884) | Cod sursa (job #1981317) | Cod sursa (job #2133790) | Istoria paginii runda/simsimmis/clasament | Cod sursa (job #116450)
Cod sursa(job #116450)
#include<stdio.h>
long in,sf,z[101],kk,dif,pp,q,i,j,k,l,n,poz,m,a,s,p;
char y[2000001];
struct abc
{
long c,r,p;
};
abc x[20000000];
long euclid(long a,long b)
{
long r;
while (b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%ld%ld",&p,&pp);
k=euclid(p,pp);
k=(p*pp)/k;
x[1].c=1;
x[1].r=1;
x[1].p=0;
in=1;
sf=1;
y[1]=1;
while (in<=sf)
{
if (y[(x[in].r*10+1)%k]==0)
{
sf++;
x[sf].r=(x[in].r*10+1)%k;
x[sf].c=1;
x[sf].p=in;
y[x[sf].r]=1;
if (x[sf].r==0) {in=sf+10;poz=sf;}
}
if (y[(x[in].r*10)%k]==0&&in<=sf)
{
sf++;
x[sf].r=(x[in].r*10)%k;
x[sf].c=0;
x[sf].p=in;
y[x[sf].r]=1;
if (x[sf].r==0) {in=sf+10;poz=sf;}
}
in++;
}
while (x[poz].p!=0)
{
z[++m]=x[poz].c;
poz=x[poz].p;
}
m++;
z[m]=1;
for (i=m;i>=1;i--)
printf("%ld",z[i]);
printf("\n");
return 0;
}