Pagini recente » Cod sursa (job #1458535) | Cod sursa (job #676522) | Cod sursa (job #2035425) | Cod sursa (job #79517) | Cod sursa (job #1414285)
#include<cstdio>
#include<queue>
using namespace std;
struct cmp{int rest;long long nr;};
queue<cmp>Q;
cmp ales;
bool vc[2000001];
int ca,num,cb,a,b,res,rez,v[25];
int main(){
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
ca=a;
cb=b;
while(cb!=0){
res=ca%cb;
ca=cb;
cb=res;
}
num=(a*b)/ca;
cmp str;
str.nr=1;
str.rest=1;
if(num==1)
printf("1");
else{
Q.push(str);
int pp=1;
while(!Q.empty()&&pp==1){
ales=Q.front();
Q.pop();
//ad 0
str.nr=ales.nr*2;
str.rest=(ales.rest*10)%num;
if(str.rest==0){
rez=str.nr;
pp=0;
}
else{
if(vc[str.rest]==false)
Q.push(str);
//ad 1
str.nr=ales.nr*2+1;
str.rest=(ales.rest*10 +1)%num;
if(str.rest==0){
rez=str.nr;
pp=0;
}
if(vc[str.rest]==false)
Q.push(str);
}
}
int i=0;
while(rez!=0){
v[++i]=rez%2;
rez/=2;
}
for(int j=i;j>=1;j--)
printf("%d",v[j]);
}
return 0;
}