Given the size of array N, the task is to construct an array of size N with positive integer elements such that the cube sum of all elements of this array is a perfect square.
Note: Repetitions of integers are allowed.
Example:
Input: N = 1
Output: 4
Explanation: Cube of 4 is 64, and 64 is perfect square.
Input: N = 6
Output: 5 10 5 10 5 5
Explanation: Cubic sum of array element is (5)3 + (10)3 + (5)3 + (10)3 + (5)3 + (5)3 = 2500, and 2500 is perfect square.
Approach: The idea is to construct array of size, N which contain first N natural number. If closely observed,
cubic sum of first N natural number: (1)3 + (2)3 + (3)3 + (4)3 + …….(N)3 is always perfect square.
as 
Below is the implementation of the above approach.
C++
#include <bits/stdc++.h>
using namespace std;
void constructArray( int N)
{
int arr[N];
for ( int i = 1; i <= N; i++) {
arr[i - 1] = i;
}
for ( int i = 0; i < N; i++) {
cout << arr[i] << ", " ;
}
}
int main()
{
int N = 6;
constructArray(N);
return 0;
}
|
Java
import java.util.*;
class GFG{
static void constructArray( int N)
{
int arr[] = new int [N];
for ( int i = 1 ; i <= N; i++)
{
arr[i - 1 ] = i;
}
for ( int i = 0 ; i < N; i++)
{
System.out.print(arr[i] + ", " );
}
}
public static void main(String[] args)
{
int N = 6 ;
constructArray(N);
}
}
|
Python3
def constructArray(N):
arr = [ 0 ] * N
for i in range ( 1 , N + 1 ):
arr[i - 1 ] = i;
for i in range (N):
print (arr[i], end = ", " )
N = 6 ;
constructArray(N);
|
C#
using System;
class GFG{
static void constructArray( int N)
{
int []arr = new int [N];
for ( int i = 1; i <= N; i++)
{
arr[i - 1] = i;
}
for ( int i = 0; i < N; i++)
{
Console.Write(arr[i] + ", " );
}
}
public static void Main()
{
int N = 6;
constructArray(N);
}
}
|
Javascript
<script>
function constructArray(N)
{
let arr = new Array(N);
for (let i = 1; i <= N; i++)
{
arr[i - 1] = i;
}
for (let i = 0; i < N; i++)
{
document.write(arr[i] + ", " );
}
}
let N = 6;
constructArray(N);
</script>
|
Output: 1, 2, 3, 4, 5, 6,
Time Complexity: O(N) where N is the size of the Array.
Space Complexity: O(N), for creating an array to store the answer.