Pagini recente » Cod sursa (job #3156835) | Cod sursa (job #2908495) | Cod sursa (job #2734201) | Cod sursa (job #1912716) | Cod sursa (job #258110)
Cod sursa(job #258110)
#include<stdio.h>
struct cifra{int res,ant,c;}v[2000000];
int viz[2000000],i,j,k,l,m,n,a,b,cm,p,q;
FILE *g=fopen("multiplu.out","w");
void afis(cifra x){
if(!x.ant)
{fprintf(g,"%d",x.c);
return ;
}
afis(v[x.ant]);
fprintf(g,"%d",x.c);
}
void fill()
{while(p<=q)
{if(!viz[(v[p].res*10)%k])
{v[++q].res=(v[p].res*10)%k;
viz[v[q].res]=1;
v[q].ant=p;
v[q].c=0;
if(!v[q].res)
return ;
}
if(!viz[(v[p].res*10+1)%k])
{v[++q].res=(v[p].res*10+1)%k;
viz[v[q].res]=1;
v[q].ant=p;
v[q].c=1;
if(!v[q].res)
return;
}
p++;}}
int main(){
FILE *f=fopen("multiplu.in","r");
fscanf(f,"%d%d",&a,&b);
fclose(g);
n=a;m=b;
while(b){
k=a%b;
a=b;b=k;}
k=(m*n)/a;
v[1].res=v[1].c=1;
p=1;q=1;
fill();
afis(v[q]);
fclose(g);
return 0;
}