# Split N^2 numbers into N groups of equal sum

• Last Updated : 20 Oct, 2021

Given an even number N. The task is to consider numbers from 1 to N2, split them into N groups of the equal sum.
Examples

```Input: N = 2
Output: {1, 4}, {2, 3}
Two groups of equal sum are 1, 4 and 2,3

Input: N = 4
Output:
{ 1, 16} { 2, 15}
{ 3, 14} { 4, 13}
{ 5, 12} { 6, 11}
{ 7, 10} { 8, 9}```

Approach: Formula for sum of first N2 numbers: Sum = (N2 * (N2 + 1))/ 2.
Therefore, the sum of each group would be = (N2 + 1)* N2 / 2
Let us consider pairs of the following type (1, N2), (2, N2-1) and so on.
Since N2 is an even number, each group can be made using exactly N/2 such pairs.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the above approach` `#include ` `using` `namespace` `std;`   `// Function to print N groups of equal sum` `void` `printGroups(``int` `n)` `{` `    ``int` `x = 1;` `    ``int` `y = n * n;`   `    ``// No. of Groups` `    ``for` `(``int` `i = 1; i <= n; i++) {`   `        ``// n/2 pairs` `        ``for` `(``int` `j = 1; j <= n / 2; j++) {` `            ``cout << ``"{ "` `<< x << ``", "` `<< y << ``"} "``;` `            ``x++;` `            ``y--;` `        ``}`   `        ``cout << endl;` `    ``}` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 4;` `    ``printGroups(n);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the above approach`   `import` `java.io.*;`   `class` `GFG {` `    `      `// Function to print N groups of equal sum` `static` `void` `printGroups(``int` `n)` `{` `    ``int` `x = ``1``;` `    ``int` `y = n * n;`   `    ``// No. of Groups` `    ``for` `(``int` `i = ``1``; i <= n; i++) {`   `        ``// n/2 pairs` `        ``for` `(``int` `j = ``1``; j <= n / ``2``; j++) {` `            ``System.out.print(``"{ "` `+ x + ``", "` `+ y + ``"} "``);` `            ``x++;` `            ``y--;` `        ``}`   `        ``System.out.println();` `    ``}` `}`   `// Driver code`   `    ``public` `static` `void` `main (String[] args) {` `            ``int` `n = ``4``;` `    ``printGroups(n);` `    ``}` `}` `// This code is contributed by shs`

## Python3

 `# Python implementation of the above approach`   `# Function to print N groups of equal sum` `def` `printGroups(n) :` `    `  `    ``x ``=` `1` `    ``y ``=` `n ``*` `n` `    `  `    ``# No. of Groups` `    ``for` `i ``in` `range``(``1``, n ``+` `1``) :` `        `  `        ``# n/2 pairs` `        ``for` `j ``in` `range``(``1``, n ``/``/` `2` `+` `1``) :` `            `  `            ``print``(``"{"``,x,``","``,y,``"}"``,end ``=` `" "``)` `            `  `            ``x ``+``=` `1` `            ``y ``-``=` `1` `        `  `        ``print``()` `        `  `       `  `# Driver code` `if` `__name__ ``=``=` `"__main__"` `:` `    `  `    ``n ``=` `4` `    `  `    ``# Function call` `    ``printGroups(n)`   `# This code is contributed by Ryuga`

## C#

 `// Java implementation of the ` `// above approach` `using` `System;`   `class` `GFG ` `{` `    `  `// Function to print N groups ` `// of equal sum` `static` `void` `printGroups(``int` `n)` `{` `    ``int` `x = 1;` `    ``int` `y = n * n;`   `    ``// No. of Groups` `    ``for` `(``int` `i = 1; i <= n; i++) ` `    ``{`   `        ``// n/2 pairs` `        ``for` `(``int` `j = 1; j <= n / 2; j++)` `        ``{` `            ``Console.Write(``"{ "` `+ x + ``", "` `+ y + ``"} "``);` `            ``x++;` `            ``y--;` `        ``}`   `        ``Console.WriteLine();` `    ``}` `}`   `// Driver code` `public` `static` `void` `Main ()` `{` `    ``int` `n = 4;` `    ``printGroups(n);` `}` `}`   `// This code is contributed by shs`

## PHP

 ``

## Javascript

 ``

Output:

```{ 1, 16} { 2, 15}
{ 3, 14} { 4, 13}
{ 5, 12} { 6, 11}
{ 7, 10} { 8, 9}```

My Personal Notes arrow_drop_up
Recommended Articles
Page :