Cod sursa(job #2262096)

Utilizator CammieCamelia Lazar Cammie Data 16 octombrie 2018 22:52:33
Problema Multiplu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;

ifstream fin("multiplu.in");
ofstream fout("multiplu.out");

long long multiplu;
int x[22];

inline int cmmdc(int a, int b) {
    int r;
    do {
        r = a % b;
        a = b;
        b = r;
    } while (r);

    return a;
}

inline int nrcif(int nr) {
    int contor = 0;
    while (nr) {
        contor++;
        nr /= 10;
    }

    return contor;
}

inline void bkt(int n) {
    int k = 1; x[1] = 0; int nr = 0;
    while (k) {
        if (x[k] < 1) {
            x[k]++;
            nr *= 10; nr += x[k];

            if (k == n) {
                if (nr % multiplu == 0) {
                    fout << nr;
                    return;
                }
            }
            else if (k < n) {
                k++;
                x[k] = -1;
            }
        }
        else {
            k--;
            nr /= 10;
        }
    }
    bkt(n + 1);
}

inline void Read() {
    int A, B, div, cont;

    fin >> A >> B;
    div = cmmdc(A, B);
    multiplu = (1LL * A * B) / div;
    cont = nrcif(multiplu);

    bkt(cont);
}

int main () {
    Read();

    fin.close(); fout.close(); return 0;
}