Pagini recente » Cod sursa (job #799082) | Cod sursa (job #537609) | Cod sursa (job #2271116) | Cod sursa (job #418704) | Cod sursa (job #148127)
Cod sursa(job #148127)
#include<stdio.h>
#include<string.h>
#define N 100000
#define CIF 100
int coada[N][CIF];
bool v[N];
int mod(int A[], int B){
int i, t = 0;
for (i = 1; i <= A[0]; ++i)
t = (t * 10 + A[i]) % B;
return t;
}
void copie(int a[],int b[]){
for (int i=0;i<=b[0];++i)
a[i]=b[i];
}
void scrie(int u){
for (int i=1;i<=coada[u][0];++i)
printf("%d",coada[u][i]);
}
int cmmdc(int a,int b){
if (b==0)
return a;
else return cmmdc(b,a%b);
}
int main(){
int p,u,r,n,i,a,b;
p=u=0;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
n=a*b/cmmdc(a,b);
//printf("%d ",n);
for(i=0;i<n;++i)
v[i]=false;
coada[u][1]=1;coada[u++][0]=1;
v[1]=true;
while(p<u && (!v[0])){
coada[p][0]++;
coada[p][coada[p][0]]=0;
r=mod(coada[p],n);
if(!v[r]){
v[r]=true;
copie(coada[u],coada[p]);
++u;
}
if(v[0]){
scrie(u-1);
return 0;
}
coada[p][coada[p][0]]=1;
r=mod(coada[p],n);
if(!v[r]){
v[r]=true;
copie(coada[u],coada[p]);
++u;
}
if(v[0]){
scrie(u-1);
return 0;
}
++p;
}
return 0;
}