Решение задачи "Произведение трех чисел" с Codeforces

Без пояснения   Просмотров: 17


Вам задано целое число n. Найдите три различных целых числа a,b,c таких, что 2≤a,b,c и a⋅b⋅c=n или скажите, что невозможно сделать это.

Если существует несколько подходящих ответов, вы можете вывести любой.

Вам нужно ответить на t независимых наборов входных данных.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int t; scanf ("%d",&t);
    for(int j = 0; j < t; ++j){
        int n;
        scanf ("%d",&n);
        int temp = n;
        vector<int> a;
        for(int i = 2; i <= n / i; ++i){
            if(a.size() < 2) {
                if(n % i == 0){
                    a.push_back(i);
                    n/=i;
                }
            } else
                break;
        }
        if(a.size() == 2 && temp/(a[0] * a[1]) != a[1]){
            cout << "YES" << endl;
            cout << a[0] << " " << a[1] << " " << temp/(a[0] * a[1]) << endl;
        }
        else {
            cout << "NO" << endl;
        }
    }
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться