помогите пожалуиста решить это
Считайте натуральное число n. Отобразите все тройки натуральных чисел x, y, z (1 <x <y <z <n), которые являются делителями n и обладают тем свойством, что x + y + z = n. Программа будет отображать на экране отдельными строками тройку в соответствии с требованием, причем числа в тройке расположены строго по возрастанию и разделены пробелом. Если такого триплета нет, то он появится на экране не существует. Примеры: Для n = 24 получаем 4 8 12. Для n = 20 отображается не существует.
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
#include<iostream>
int main(int argc, char *argv[])
{
int n = 24;
for (int x = 0; x < n; x++){
for (int y = 0; y < n; y++){
for (int z = 0; z < n; z++){
if (1 < x){
if (x < y){
if (y < z){
if (z < n){
if (n % x == 0){
if (n % y == 0){
if (n % z == 0){
if (x + y + z == n){
std::cout << x << ' ' << y << ' ' << z << std::endl;
}
}
}
}
}
}
}
}
}
}
}
}