Related Articles
Print squares of first n natural numbers without using *, / and –
• Difficulty Level : Medium
• Last Updated : 06 Apr, 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``// wothout 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``// wothout 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``// wothout 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`

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``// wothout 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``# wothout 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`

This article is contributed by Sachin. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up