Cod sursa(job #1822780)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 5 decembrie 2016 16:09:53
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include<cstdio>
using namespace std;
int cmmmc(int a, int b){
    int cb=b,ca=a;
    while(b!=0) {
        int aux=b;
        b=a%b;
        a=aux;
    }
    int  cmmdc=a;
    int  cmmmc=ca*cb/cmmdc;
    return cmmmc;
}
struct DALE{
    int val,rest;
};
DALE q[2000005];
int main(){
    freopen("multiplu.in","r",stdin);
    freopen("multiplu.out","w",stdout);
    int a,b,p=1,g=1,ok=1,m,nr1,nr2;
    scanf("%d%d", &a, &b);
    q[p].val=1;
    q[p].rest=1;
    g++;
    m=cmmmc(a,b);
    while(ok){
        nr1=q[p].val*10;
        if(nr1%m==0){
            ok=0;
            printf("%d", nr1);
            continue;
        }
        else{
            int ok1=1;
            for(int i=1;i<=p && ok1==1;i++)
                if(q[p].rest==nr1%m)
                    ok1=0;
            if(ok1==1){
                q[g].rest=nr1%m;
                q[g].val=nr1;
                g++;
            }
        }
        if(ok){
			nr2=q[p].val*10+1;
			if(nr2%m==0){
				ok=0;
				printf("%d", nr2);
				continue;
			}
			else{
				int ok1=1;
				for(int i=1;i<=p && ok1==1;i++)
					if(q[p].rest==nr2%m)
						ok1=0;
				if(ok1==1){
					q[g].rest=nr2%m;
					q[g].val=nr2;
					g++;
				}
			}
        }
        p++;
    }
    return 0;
}