Pagini recente » Cod sursa (job #2878570) | Cod sursa (job #2282154) | Cod sursa (job #1560203) | Cod sursa (job #3288806) | Cod sursa (job #1415113)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 2000000
int v[MAXN],prev[MAXN];
char vf[MAXN],cif[MAXN],nr[MAXN];
int main(){
FILE*fi,*fout;
int i,b,e,cmmmc,a1,b1,a,r,j;
fi=fopen("multiplu.in" ,"r");
fout=fopen("multiplu.out" ,"w");
fscanf(fi,"%d%d" ,&a,&b);
a1=a;b1=b;
while(b>0){
r=a%b;
a=b;
b=r;
}
cmmmc=(a1*b1)/a;
b=e=0;
v[b]=vf[1]=cif[b]=1;
prev[b]=-1;
do{
if(vf[(v[b]*10)%cmmmc]==0){
e=(e+1)%MAXN;
v[e]=(v[b]*10)%cmmmc;
vf[(v[b]*10)%cmmmc]=1;
prev[e]=b;
cif[e]=0;
}
if(vf[(v[b]*10+1)%cmmmc]==0){
e=(e+1)%MAXN;
v[e]=(v[b]*10+1)%cmmmc;
vf[(v[b]*10+1)%cmmmc]=1;
prev[e]=b;
cif[e]=1;
}
b=(b+1)%MAXN;
}while(v[b]%cmmmc>0);
j=0;
while(b>=0){
nr[j++]=cif[b];
b=prev[b];
}
for(i=j-1;i>=0;i--)
fprintf(fout,"%d" ,nr[i]);
fclose(fi);
fclose(fout);
return 0;
}