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 <bits/stdc++.h>using namespace std;// Function to print N groups of equal sumvoid 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 codeint main(){ int n = 4; printGroups(n); return 0;} |
Java
// Java implementation of the above approachimport java.io.*;class GFG { // Function to print N groups of equal sumstatic 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 sumdef 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 codeif __name__ == "__main__" : n = 4 # Function call printGroups(n)# This code is contributed by Ryuga |
C#
// Java implementation of the // above approachusing System;class GFG { // Function to print N groups // of equal sumstatic 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 codepublic static void Main (){ int n = 4; printGroups(n);}}// This code is contributed by shs |
PHP
<?php// PHP implementation of the // above approach// Function to print N groups // of equal sumfunction printGroups($n){ $x = 1; $y = $n * $n; // No. of Groups for ($i = 1; $i <= $n; $i++) { // n/2 pairs for ($j = 1; $j <= $n / 2; $j++) { echo "{ " , $x , ", " , $y , " } "; $x++; $y--; } echo "\n"; }}// Driver code$n = 4;printGroups($n); // This code is contributed by shs?> |
Javascript
<script>// Javascript implementation of the above approach// Function to print N groups of equal sumfunction prletGroups(n){ let x = 1; let y = n * n; // No. of Groups for (let i = 1; i <= n; i++) { // n/2 pairs for (let j = 1; j <= n / 2; j++) { document.write("{ " + x + ", " + y + "} "); x++; y--; } document.write("<br/>"); }}// driver program let n = 4; prletGroups(n); </script> |
{ 1, 16} { 2, 15}
{ 3, 14} { 4, 13}
{ 5, 12} { 6, 11}
{ 7, 10} { 8, 9}
Time Complexity: O(n2)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Read More here to that Topic: geeksforgeeks.org/split-n-2-numbers-into-n-groups-of-equal-sum/ […]
… [Trackback]
[…] Here you will find 15674 more Info on that Topic: geeksforgeeks.org/split-n-2-numbers-into-n-groups-of-equal-sum/ […]
… [Trackback]
[…] Read More Information here to that Topic: geeksforgeeks.org/split-n-2-numbers-into-n-groups-of-equal-sum/ […]
… [Trackback]
[…] Read More Information here to that Topic: geeksforgeeks.org/split-n-2-numbers-into-n-groups-of-equal-sum/ […]
… [Trackback]
[…] Read More on on that Topic: geeksforgeeks.org/split-n-2-numbers-into-n-groups-of-equal-sum/ […]