Cod sursa(job #2224194)

Utilizator patcasrarespatcas rares danut patcasrares Data 23 iulie 2018 13:38:50
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<fstream>
#include<iostream>
#define DN 1000005
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
long long a,b,c,r,rez,put,f,nr,g;
int cmmdc(int a,int b)
{
    int c;
    while(b)
    {
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}
int vf(long long a)
{
    while(a)
    {
        if(a%10>1)
            return 0;
        a=a/10;
    }
    return 1;
}
int main()
{
    fin>>a>>b;
    rez=r=(a*b)/cmmdc(a,b);
    f=r;
    put=1;
    f=f/10;
    g++;
    while(f)
    {
        nr++;
        g++;
        put=put*10;
        f/=10;
    }
    if(vf(rez))
    {
        fout<<rez;
        return 0;
    }
    put=(put*10)%r;
    g++;
    //cout<<g<<'\n';
    while(1)
    {
        put=(put*10)%r;
        g++;
        if(vf((r-put)%r))
            break;
    }
    f=(r-put)%r;
   // cout<<g<<' '<<r<<' '<<put;
    if(f==0)
    {
        fout<<1;
        g--;
        while(g--)
            fout<<0;
        return 0;
    }
    //cout<<g<<'\n';
    while(f)
    {
        g--;
        f=f/10;
    }
    g--;
    fout<<1;
    while(g--)
        fout<<0;
    fout<<(r-put)%r;
}