Pagini recente » Cod sursa (job #2682852) | Cod sursa (job #1524339) | Cod sursa (job #1190740) | Cod sursa (job #2989244) | Cod sursa (job #147045)
Cod sursa(job #147045)
#include <stdio.h>
FILE *in,*out;
char e[2000002];
int d[10002];
int c[10002][1000];
int b,cmc,r,a,x,i,j,p,u;
void af(int x)
{
int i;
for (i=c[x][0];i>=1;i--)
fprintf(out,"%d",c[x][i]);
fprintf(out,"\n");
}
int main()
{
in=fopen("multiplu.in","r");
out=fopen("multiplu.out","w");
fscanf(in,"%d%d",&a,&b);
cmc=a*b;
r=a%b;
while (r)
{
a=b;
b=r;
r=a%b;
}
cmc/=b;
if (cmc==1)
{
fprintf(out,"1\n");
fclose(in);
fclose(out);
return 0;
}
p=1;
c[1][0]=1;
c[1][1]=1;
d[1]=1;
while(666999)
{
u=p;
for (i=1;i<=p;i++)
{
x=d[i]*10;
if (!e[(x+1)%cmc])
{
u++;
c[u][0]=c[i][0]+1;
for (j=1;j<=c[i][0];j++)
c[u][j]=c[i][j];
c[u][c[u][0]]=1;
d[u]=(x+1)%cmc;
e[d[u]]=1;
if (d[u]==0)
{
af(u);
fclose(in);
fclose(out);
return 0;
}
}
if (!e[x%cmc])
{
u++;
c[u][0]=c[i][0]+1;
for (j=1;j<=c[i][0];j++)
c[u][j]=c[i][j];
c[u][c[u][0]]=0;
d[u]=x%cmc;
e[d[u]]=1;
if (d[u]==0)
{
af(u);
fclose(in);
fclose(out);
return 0;
}
}
}
for (i=p+1;i<=u;i++)
{
for (j=0;j<=c[i][0];j++)
c[i-p][j]=c[i][j];
d[i-p]=d[i];
}
p=u-p;
}
return 0;
}