Pagini recente » Cod sursa (job #1552987) | Cod sursa (job #795092) | Rating Balan Calin (calinbalan11) | Cod sursa (job #1093469) | Cod sursa (job #334479)
Cod sursa(job #334479)
#include <stdio.h>
#define N 2000005
#define P 1<<18
int a,b,m,r,pozitie;
char marc[N];
char cif[N];
int din[N];
char sol[P];
int coada[N];
int cmmdc(int x,int y)
{
int r=x%y;
while(r)
{
x=y;
y=r;
r=x%y;
}
return y;
}
int cmmmc(int a,int b)
{
return (int)((long long)a*b/cmmdc(a,b));
}
void solve()
{
marc[1]=1;
cif[1]=1;
coada[++coada[0]]=1;
int i,t,ant=0,act;
while (marc[0]==0)
{
act=coada[0];
for (i=ant+1; i<=act; i++)
{
t=(coada[i]*10)%m;
if (marc[t]==0)
{
coada[++coada[0]]=t;
marc[t]=1;
din[t]=coada[i];
cif[t]=0;
}
t=(t+1)%m;
if (marc[t]==0)
{
coada[++coada[0]]=t;
marc[t]=1;
din[t]=coada[i];
cif[t]=1;
}
}
ant=act;
}
pozitie=0;
while (din[pozitie])
{
sol[++r]=cif[pozitie];
pozitie=din[pozitie];
}
sol[++r]=1;
for (i=r; i>=1; i--)
printf("%d",sol[i]);
}
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
m=cmmmc(a,b);
solve();
return 0;
}