Cod sursa(job #968493)

Utilizator darrenRares Buhai darren Data 2 iulie 2013 10:58:06
Problema NumMst Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cmath>
#include <fstream>
#include <algorithm>

using namespace std;

int N;

int main()
{
    ifstream fin("nummst.in");
    ofstream fout("nummst.out");

    fin >> N;

    int cmmdc = 0;
    for (int i = 2; i * i <= N; ++i)
        if (N % i == 0)
            cmmdc = max(cmmdc, N / i);

    int M = N / cmmdc;

    // a + b = M, a * b maxim
    int aux = int(sqrt(M));
    if (aux == 0) ++aux;

    if (aux * (M - aux) < (aux + 1) * (M - (aux + 1))) ++aux;

    fout << cmmdc * aux << ' ' << cmmdc * (M - aux) << '\n';

    fin.close();
    fout.close();
}