Cod sursa(job #2262567)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 17 octombrie 2018 16:56:58
Problema Multiplu Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <vector>
#include <stdio.h>
using namespace std;

FILE *fi=fopen("multiplu.in","r"),*fo=fopen("multiplu.out","w");
const long long NMAX=1e7+5;
int a,b,lcm,dp[NMAX],nr;
vector <int> M;
int gcd(int a,int b)
{
    int r;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    return a;
}
int afis(int nr)
{
    while(nr)
    {
        M.push_back(nr%2);
        nr/=2;
    }
    for(int i=M.size()-1;i>=0;i--)
        fprintf(fo,"%d",M[i]);
}
int main()
{
    fscanf(fi,"%d %d",&a,&b);
    lcm=(a*b)/gcd(a,b);
    dp[0]=0;
    dp[1]=1;
    nr=1;
    while(dp[nr]!=0)
    {
        nr++;
        dp[nr]=1;
        if(nr%2==1)
            dp[nr]=(dp[nr/2]*10+1)%lcm;
        else dp[nr]=(dp[nr/2]*10)%lcm;
    }
    afis(nr);
    fclose(fi);
    fclose(fo);
    return 0;
}