# Print squares of first n natural numbers without using *, / and –

Given a natural number ‘n’, print squares of first n natural numbers without using *, / and -.
Examples :

```Input:  n = 5
Output: 0 1 4 9 16

Input:  n = 6
Output: 0 1 4 9 16 25```

We strongly recommend to minimize the browser and try this yourself first.
Method 1: The idea is to calculate next square using previous square value. Consider the following relation between square of x and (x-1). We know square of (x-1) is (x-1)2 – 2*x + 1. We can write x2 as

```x2 = (x-1)2 + 2*x - 1
x2 = (x-1)2 + x + (x - 1)```

When writing an iterative program, we can keep track of previous value of x and add the current and previous values of x to current value of square. This way we don’t even use the ‘-‘ operator.
Below is the implementation of above approach:

## C++

 `// C++ program to print squares of first 'n' natural numbers` `// without using *, / and -` `#include` `using` `namespace` `std;`   `void` `printSquares(``int` `n)` `{` `    ``// Initialize 'square' and previous value of 'x'` `    ``int` `square = 0, prev_x = 0;`   `    ``// Calculate and print squares` `    ``for` `(``int` `x = 0; x < n; x++)` `    ``{` `        ``// Update value of square using previous value` `        ``square = (square + x + prev_x);`   `        ``// Print square and update prev for next iteration` `        ``cout << square << ``" "``;` `        ``prev_x = x;` `    ``}` `}`   `// Driver program to test above function` `int` `main()` `{` `   ``int` `n = 5;` `   ``printSquares(n);` `}`

## Java

 `// Java program to print squares ` `// of first 'n' natural numbers` `// without using *, / and ` `import` `java.io.*;`   `class` `GFG ` `{` `static` `void` `printSquares(``int` `n)` `{` `    ``// Initialize 'square' and ` `    ``// previous value of 'x'` `    ``int` `square = ``0``, prev_x = ``0``;`   `    ``// Calculate and` `    ``// print squares` `    ``for` `(``int` `x = ``0``; x < n; x++)` `    ``{` `        ``// Update value of square ` `        ``// using previous value` `        ``square = (square + x + prev_x);`   `        ``// Print square and update` `        ``// prev for next iteration` `        ``System.out.print( square + ``" "``);` `        ``prev_x = x;` `    ``}` `}`   `// Driver Code` `public` `static` `void` `main (String[] args)` `{` `    ``int` `n = ``5``;` `    ``printSquares(n);` `}` `}`   `// This code is contributed ` `// by akt_mit`

## Python 3

 `# Python 3 program to print squares of first ` `# 'n' natural numbers without using *, / and -` `def` `printSquares(n):`   `    ``# Initialize 'square' and previous` `    ``# value of 'x'` `    ``square ``=` `0``; prev_x ``=` `0``;`   `    ``# Calculate and print squares` `    ``for` `x ``in` `range``(``0``, n):` `        `  `        ``# Update value of square using ` `        ``# previous value` `        ``square ``=` `(square ``+` `x ``+` `prev_x)`   `        ``# Print square and update prev  ` `        ``# for next iteration` `        ``print``(square, end ``=` `" "``)` `        ``prev_x ``=` `x`   `# Driver Code` `n ``=` `5``;` `printSquares(n);`   `# This code is contributed` `# by Akanksha Rai`

## C#

 `// C#  program to print squares ` `// of first 'n' natural numbers ` `// without using *, / and ` `using` `System;`   `public` `class` `GFG{` `    `  `    ``static` `void` `printSquares(``int` `n) ` `{ ` `    ``// Initialize 'square' and ` `    ``// previous value of 'x' ` `    ``int` `square = 0, prev_x = 0; `   `    ``// Calculate and ` `    ``// print squares ` `    ``for` `(``int` `x = 0; x < n; x++) ` `    ``{ ` `        ``// Update value of square ` `        ``// using previous value ` `        ``square = (square + x + prev_x); `   `        ``// Print square and update ` `        ``// prev for next iteration ` `        ``Console.Write( square + ``" "``); ` `        ``prev_x = x; ` `    ``} ` `} `   `// Driver Code ` `    `  `    ``static` `public` `void` `Main (){` `        ``int` `n = 5; ` `        ``printSquares(n); ` `    ``} ` `} `   `// This code is contributed ` `// by ajit`

## PHP

 ``

## Javascript

 ``

Output:

`0 1 4 9 16`

Time Complexity: O(n)

Auxiliary Space: O(1)

Method 2: Sum of first n odd numbers are squares of natural numbers from 1 to n. For example 1, 1+3, 1+3+5, 1+3+5+7, 1+3+5+7+9, ….
Following is program based on above concept. Thanks to Aadithya Umashanker and raviteja for suggesting this method.

## C++

 `// C++ program to print squares of first 'n' natural numbers` `// without using *, / and -` `#include` `using` `namespace` `std;`   `void` `printSquares(``int` `n)` `{` `    ``// Initialize 'square' and first odd number` `    ``int` `square = 0, odd = 1;`   `    ``// Calculate and print squares` `    ``for` `(``int` `x = 0; x < n; x++)` `    ``{` `        ``// Print square` `        ``cout << square << ``" "``;`   `        ``// Update 'square' and 'odd'` `        ``square = square + odd;` `        ``odd = odd + 2;` `    ``}` `}`   `// Driver program to test above function` `int` `main()` `{` `   ``int` `n = 5;` `   ``printSquares(n);` `}`

## Java

 `// Java program to print ` `// squares of first 'n' ` `// natural numbers without ` `// using *, / and -` `import` `java.io.*;`   `class` `GFG ` `{` `static` `void` `printSquares(``int` `n)` `{` `    ``// Initialize 'square' ` `    ``// and first odd number` `    ``int` `square = ``0``, odd = ``1``;`   `    ``// Calculate and` `    ``// print squares` `    ``for` `(``int` `x = ``0``; x < n; x++)` `    ``{` `        ``// Print square` `        ``System.out.print(square + ` `                           ``" "` `);`   `        ``// Update 'square'` `        ``// and 'odd'` `        ``square = square + odd;` `        ``odd = odd + ``2``;` `    ``}` `}`   `// Driver Code` `public` `static` `void` `main (String[] args) ` `{` `    ``int` `n = ``5``;` `    ``printSquares(n);` `}` `}`   `// This code is contributed` `// by ajit`

## Python3

 `# Python3 program to print squares ` `# of first 'n' natural numbers ` `# without using *, / and - `   `def` `printSquares(n):` `    `  `    ``# Initialize 'square' and` `    ``# first odd number ` `    ``square ``=` `0` `    ``odd ``=` `1` `    `  `    ``# Calculate and print squares ` `    ``for` `x ``in` `range``(``0` `, n):` `        `  `        ``# Print square ` `        ``print``(square, end``=` `" "``)` `        `  `        ``# Update 'square' and 'odd' ` `        ``square ``=` `square ``+` `odd` `        ``odd ``=` `odd ``+` `2`   `# Driver Code` `n ``=` `5``; ` `printSquares(n)`   `# This code is contributed ` `# by Rajput-Ji`

## C#

 `// C# program to print squares of first 'n' ` `// natural numbers without using *, / and -` `using` `System;`   `class` `GFG ` `{` `static` `void` `printSquares(``int` `n)` `{` `    ``// Initialize 'square' ` `    ``// and first odd number` `    ``int` `square = 0, odd = 1;`   `    ``// Calculate and` `    ``// print squares` `    ``for` `(``int` `x = 0; x < n; x++)` `    ``{` `        ``// Print square` `        ``Console.Write(square + ``" "` `);`   `        ``// Update 'square'` `        ``// and 'odd'` `        ``square = square + odd;` `        ``odd = odd + 2;` `    ``}` `}`   `// Driver Code` `public` `static` `void` `Main () ` `{` `    ``int` `n = 5;` `    ``printSquares(n);` `}` `}`   `// This code is contributed` `// by inder_verma..`

## PHP

 ``

## Javascript

 ``

Output :

`0 1 4 9 16`

Time Complexity: O(n)

Auxiliary Space: O(1), since no extra space has been taken.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Previous
Next