Дано натуральное число n. Можно ли представить в виде суммы квадратов трех натуральных чисел? - C#
Формулировка задачи:
Здравствуйте.
Задача:
Решение:
Вопрос: а как проверить теперь, совпадает ли решение, если цифры переставить? Т.е. учесть эту часть задачи "Решения, которые получаются перестановкой x, y и z, считать совпадающими."
Огромное спасибо
Дано натуральное число n. Можно ли представить в виде суммы квадратов трех натуральных чисел? Если можно, то вывести на экран такие тройки x, y и z натуральных чисел. Решения, которые получаются перестановкой x, y и z, считать совпадающими.
using System;
namespace Test1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите число N");
int n = Convert.ToInt32(Console.ReadLine());
int x = 0, y = 0, z = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
for (int k = 0; k < n; k++)
if (n == (i * i + j * j + k * k))
{
x = i; y = j; z = k;
Console.WriteLine("{0} {1} {2}",x,y,z);
}
}
}
}Решение задачи: «Дано натуральное число n. Можно ли представить в виде суммы квадратов трех натуральных чисел?»
textual
Листинг программы
int p = n/3;
for (int i = 0; i < p; i++)
for (int j = p; j < 2*p; j++)
for (int k = 2*p; k < n; k++)
if (n == (i * i + j * j + k * k))
{
x = i; y = j; z = k;
Console.WriteLine("{0} {1} {2}",x,y,z);
}