Произведение цифр C++

Найти наименьшее и наибольшее натуральные числа, произведение цифр в которых равно заданному натуральному числу M или вывести -1 -1, если таких не существует. Для записи искомых чисел нельзя использовать цифры 0 і 1.

Во входном файле целое число M (2≤ M ≤ 103).
В выходной файл необходимо записать два целых числа в неубывающем порядке.

 

Входные данные

 12

Выходные данные

 26 322

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n, tmp, A = 0, B = 0; cin >> n;
    tmp = n;
    string a, b;
    for (int i = 2; i < 10; i++)
        while (tmp % i == 0)
        {
            a += i + 48;
            tmp /= i;
        }
    tmp = n;
    for (int i = 9; i > 1; i--)
        while (tmp % i == 0)
        {
            b += i + 48;
            tmp /= i;
        }
    if (tmp != 1) cout << -1 << " " << -1 << endl;
    else
    {
        for (int i = a.length() - 1; i >= 0; i--) A = A * 10 + a[i] - 48;
        for (int i = b.length() - 1; i >= 0; i--) B = B * 10 + b[i] - 48;
        cout << min(A, B) << " " << max(A, B) << endl;
    }
}

Назад

Повышение продаж с помощью веб-форм Разложение числа на простые множители Как качественный контент способствует продвижению сайта Как выбрать хостинг Как писать SEO-тексты? Что такое SEO оптимизация сайта


Хостинг

Есть решение которого нет на сайте? Пиши admin@devexe.top