Cod sursa(job #2119647)

Utilizator amarghescuAnton Marghescu amarghescu Data 1 februarie 2018 14:54:46
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>
#include<queue>
using namespace std;
int cmmmc(int a,int b){
int r,ca=a,cb=b;
while(b){
r=a%b;
a=b;
b=r;}
return ca*cb/a;}
queue<int>q;
int cnt[2000005];
int rasp[50],u;
int main(){
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int a,b,num,i;
scanf("%d%d",&a,&b);
cnt[1]=1;
a=cmmmc(a,b);
q.push(1);
while(!q.empty()){
num=q.front();
q.pop();
if (cnt[(num*10+0)%a]==0)
cnt[(num*10+0)%a]=cnt[num]*2+0,q.push((num*10+0)%a);
if (cnt[(num*10+1)%a]==0)
cnt[(num*10+1)%a]=cnt[num]*2+1,q.push((num*10+1)%a);
if (cnt[0]!=0)
break;}
while(cnt[0]){
rasp[++u]=cnt[0]%2;
cnt[0]/=2;}
for(i=u;i>=1;i--)
printf("%d",rasp[i]);
return 0;}