Cod sursa(job #115192)

Utilizator vlad_popaVlad Popa vlad_popa Data 16 decembrie 2007 11:29:13
Problema Multiplu Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasele 11-12 Marime 1.26 kb
#include <cstdio>
#include <cassert>

#define FIN "multiplu.in"
#define FOUT "multiplu.out"

int A, B, N;
long long sol;

void read ()
{
    scanf ("%d %d\n", &A, &B);
    int aa = A, bb = B;
    
    /*N = 1;
    for (int d = 2; aa*bb != 1; ++ d)
    {
        while (aa % d == 0)
        {
            N *= d;
            aa /= d;
            if (bb % d == 0)
                bb /= d;
        }    
        while (bb % d == 0)
        {
            N *= d;
            bb /= d;
        }
    }
    printf ("%d %d %d\n", N, A, B);*/
}

void solve ()
{
    int lim = 1<<18, mask, i;
    long long pow10;
    
    for (mask = 1; mask < lim; ++ mask)
    {
        pow10 = 1;
        sol = 0;
        for (i = 0; i < 18; ++ i, pow10 = (long long)(pow10 * 10))
            if (mask & (1 << i))
            {
                sol = (long long)(sol + pow10);
                //assert (sol >= 0);
            }
        if (sol >= A && sol >= B)
            if (sol % A == 0 && sol % B == 0)
            {
                printf ("%lld\n", sol);
                return;
            }
    }
}

int
 main ()
{
    freopen (FIN, "rt", stdin);
    freopen (FOUT, "wt", stdout);
    
    read ();
    solve ();
    
    return 0;
}