Cod sursa(job #115482)

Utilizator flo_demonBunau Florin flo_demon Data 16 decembrie 2007 12:49:29
Problema Multiplu Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasa a 10-a Marime 1.07 kb
#include <stdio.h>

int gcd(int a, int b);

int main()
{
    int a, b, anr;
    FILE *fin = fopen("multiplu.in", "r");
    FILE *fout = fopen("multiplu.out", "w");
    fscanf(fin, "%d%d", &a, &b);
    fclose(fin);
    
    int A = (a / gcd(a, b));
    int B = (b / gcd(a, b));
    
    bool bad;
    for (int nr = A * B; ; ++nr)
    {
        anr = nr;
        bad = false;
        while (anr / 10)
        {
            if (anr % 10 == 0 || anr % 10 == 1)
            {
                anr /= 10;   
            }
            else
            {
                bad = true;
                break;
            }
        }
        if (anr % 10 == 0 || anr % 10 == 1)
        {
            if (nr % a == 0 && nr % b == 0)
            {
                fprintf(fout, "%d\n", nr);
                fclose(fout);
                return 0;
            }
        }
        else
            bad = true;
        if (bad) continue;
    }
    fclose(fout);
    
    return 0;
}

int gcd(int a, int b)
{
    if (b == 0) return a;
    return gcd(b, a % b);
}