# Generate a unique Array of length N with sum of all subarrays divisible by N

Last Updated : 16 Aug, 2021

Given an integer N, the task is to make an array of unique elements of length N such that all subarrays sum modulo N equals to zero.

Examples:

Input: N = 6
Output: 6 12 18 24 30 36
Explanation:
Since all elements are a multiple of 6. Hence all subarrays add up to a sum divisible by 6.
Input: N = 4
Output: 4 8 12 16

Approach:
We can observe that for all subarrays to be divisible by N, the elements of the array need to be a multiple of N.
Illustration:

For N = 4, if we consider the array elements to {4, 8, 12, 16}, All possible subarrays are:
{4}, {8}, {12}, {16}, {4, 8}, {8, 12}, {12, 16}, {4, 8, 12}, {8, 12, 16}, {4, 8, 12, 16}
Hence, all subarrays have a sum divisible by N.

Hence, to solve the problem, we just need to print {N, 2*N, 3*N, ….., N*N} to get the desired array.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the` `// above approach`   `#include ` `using` `namespace` `std;`   `// Function to print the required` `// array` `void` `makeArray(``int` `a[], ``int` `n)` `{` `    ``// Print the array` `    ``for` `(``int` `i = 1; i <= n; i++)` `        ``cout << i * n << ``" "``;` `}`   `// Driver Program` `int` `main()` `{` `    ``int` `N = 6;` `    ``int` `arr[N];` `    ``makeArray(arr, N);` `}`

## Java

 `// Java program for the above approach` `class` `GFG{ `   `// Function to print the required` `// array` `static` `void` `makeArray(``int` `a[], ``int` `n)` `{` `    `  `    ``// Print the array` `    ``for``(``int` `i = ``1``; i <= n; i++)` `       ``System.out.print(i * n + ``" "``);` `}`   `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `N = ``6``;` `    ``int` `arr[] = ``new` `int``[N];` `    `  `    ``makeArray(arr, N);` `} ` `} `   `// This code is contributed by Pratima Pandey`

## Python3

 `# Python3 implementation of the` `# above approach`   `# Function to print the ` `# required array` `def` `makeArray(n):` `    `  `    ``# Print Array ` `    ``for` `i ``in` `range``(n):` `        ``print``((i ``+` `1``) ``*` `n, end ``=``" "``)`     `# Driver code` `n ``=` `6``;` `makeArray(n);`

## C#

 `// C# program for the above approach` `using` `System;` `class` `GFG{ `   `// Function to print the required` `// array` `static` `void` `makeArray(``int` `[]a, ``int` `n)` `{` `    `  `    ``// Print the array` `    ``for``(``int` `i = 1; i <= n; i++)` `    ``Console.Write(i * n + ``" "``);` `}`   `// Driver code ` `public` `static` `void` `Main() ` `{ ` `    ``int` `N = 6;` `    ``int` `[]arr = ``new` `int``[N];` `    `  `    ``makeArray(arr, N);` `} ` `} `   `// This code is contributed by Code_Mech`

## Javascript

 ``

Output:

`6 12 18 24 30 36`

Time Complexity: O(N)
Auxiliary Space: O(1)