C++ Как разбить прямоугольник на минимальное количество квадратов

Как вывести массив который будет выводить прямоугольник разбитый на минимальное количество квадратов. Начал писать, но как сделать не пойму.

#include <iostream>

using namespace std;

int triang[100][100];

int main()
{
   setlocale(LC_ALL, "russian");

int Counter_One = 0, Counter_Two = 0, countW = 1, Heigth = 0, Heigth0 = 0, Area = 0;
int kallbomja = 0, zzz = 0, xxx = 0, CountStart = 0, CounterSqr = 0, Width = 0, Width0 = 0;

bool Signal = 0;

cout << "Введите длину прямоугольника : "; cin >> Width;
cout << "Введите ширину прямоугольника : "; cin >> Heigth;

int chush = Width - Heigth;

Area = Width * Heigth;
double AreaOst = Area;
Width0 = Width;
Heigth0 = Heigth;

while (Width0 != 0 && Heigth0 != 0)
{
    CounterSqr++;
    if (Width0 >= Heigth0)
    {
        Width0 = Width0 - Heigth0;
        Signal = true;
    }
    else
    {
        Heigth0 = Heigth0 - Width0;
        Signal = false;
    }

    if (Signal == true)
    {
        for (int Counter_One = zzz; Counter_One < Heigth0; Counter_One++)
            for (int Counter_Two = xxx; Counter_Two < Heigth0; Counter_Two++)
            {
                zzz++;
                xxx++;
                triang[Counter_One][Counter_Two] = CounterSqr;
            }
    } 
    else
    {
        for (int Counter_One = zzz; Counter_One < Width0; Counter_One++)
            for (int Counter_Two = xxx; Counter_Two < Width0; Counter_Two++)
            {
                zzz++;
                xxx++;
                triang[Counter_One][Counter_Two] = CounterSqr;
            }
    } 
}
for (int i = 0; i < 11; i++)
{
    for (int j = 0; j < 11; j++)
    {
        if (triang[i][j] == 1)
            cout << 1 << " ";
        if (triang[i][j] == 2)
            cout << 2 << " ";
        if (triang[i][j] == 3)
            cout << 3 << " ";
        if (triang[i][j] == 4)
            cout << 4 << " ";
        if (triang[i][j] == 5)
            cout << 5 << " ";
        if (triang[i][j] == 6)
            cout << 6 << " ";
    }
    cout << endl;
}
return 0;
}

Ответы (0 шт):