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

• Difficulty Level : Medium
• Last Updated : 02 Dec, 2021

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)