Cod sursa(job #1175156)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 24 aprilie 2014 16:27:40
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<fstream>
using namespace std;
ifstream in("multiplu.in");
ofstream out("multiplu.out");
int multiplu[1000000],nr[100000],a,b;

void aduna(int v[],int s[])
{

    int c,i,t=0;
    for(i = 1 ; i <= v[0] ; i++)
    {
        c = v[i]+s[i]+t;
        v[i] = c%10;
        t = c/10;
    }
    if(t) {
        v[v[0]+1] = t;
        v[0]++;
    }
}

void convert(int v[],int nr)
{
    int c;
    while(nr)
    {
        c = nr%10;
        v[0]++;
        v[v[0]] = c;
        nr/=10;
    }
}

int valid(int v[])
{
    if(!v[0]) return 0;
    for(int i = 1 ; i <= v[0] ; i++)
        if(v[i] !=0 && v[i] != 1) return 0;
    return 1;
}

int cmmc(int a,int b)
{

    int c = a,d = b;
    int r = a%b;
    while(r)
    {

        c = d;
        d = r;
        r = c % d;
    }
    return (a*b)/d;
}

void solve()
{

    in >> a >> b;
    in.close();
    int c = cmmc(a,b);
    convert(nr,c);
    convert(multiplu,c);
    while(!valid(multiplu))
        aduna(multiplu,nr);
    for(int i = multiplu[0]; i >=1 ; i--)
        out<<multiplu[i];
    out.close();
}

int main()
{

    solve();
    return 0;
}