 GeeksforGeeks App
Open App Browser
Continue

# Sum of first n odd numbers in O(1) Complexity

Given the sequence of odd numbers
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, ….
Find the sum of first n odd numbers
Examples:

```Input : n = 2
Output : 4
Sum of first two odd numbers is 1 + 3 = 4.

Input : 5
Output : 25
Sum of first 5 odd numbers is 1 + 3 + 5 +
7 + 9 = 25```

A simple solution is to iterate through all odd numbers.

## C++

 `// A naive CPP program to find sum of``// first n odd numbers``#include ``using` `namespace` `std;` `// Returns the sum of first``// n odd numbers``int` `oddSum(``int` `n)``{``    ``int` `sum = 0, curr = 1;``    ``for` `(``int` `i = 0; i < n; i++) {``        ``sum += curr;``        ``curr += 2;``    ``}``    ``return` `sum;``}` `// Driver function``int` `main()``{``    ``int` `n = 20;``    ``cout << ``" Sum of first "` `<< n``         ``<< ``" Odd Numbers is: "` `<< oddSum(n);``    ``return` `0;``}`

## Java

 `// Java program to find sum of``// first n odd numbers``import` `java.util.*;` `class` `Odd``{  ``    ``// Returns the sum of first``    ``// n odd numbers``    ``public` `static` `int` `oddSum(``int` `n)``    ``{``        ``int` `sum = ``0``, curr = ``1``;``        ``for` `(``int` `i = ``0``; i < n; i++) {``            ``sum += curr;``            ``curr += ``2``;``        ``}``        ``return` `sum;``    ``}``    ` `    ``// driver function``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``20``;``        ``System.out.println(``" Sum of first "``+ n``        ``+``" Odd Numbers is: "``+oddSum(n));``    ``}``}` `// This code is contributed by rishabh_jain`

## Python3

 `# Python3 program to find sum``# of first n odd numbers` `def` `oddSum(n) :``    ``sum` `=` `0``    ``curr ``=` `1``    ``i ``=` `0``    ``while` `i < n:``        ``sum` `=` `sum` `+` `curr``        ``curr ``=` `curr ``+` `2``        ``i ``=` `i ``+` `1``    ``return` `sum` `# Driver Code``n ``=` `20``print` `(``" Sum of first"` `, n, ``"Odd Numbers is: "``,``                                ``oddSum(n) )` `# This code is contributed by rishabh_jain`

## C#

 `// C# program to find sum of``// first n odd numbers``using` `System;` `class` `GFG {``    ` `    ``// Returns the sum of first``    ``// n odd numbers``    ``public` `static` `int` `oddSum(``int` `n)``    ``{``        ``int` `sum = 0, curr = 1;``        ``for` `(``int` `i = 0; i < n; i++) {``            ``sum += curr;``            ``curr += 2;``        ``}``        ` `        ``return` `sum;``    ``}` `    ``// driver function``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 20;``        ``Console.WriteLine(``" Sum of first "` `+ n``            ``+ ``" Odd Numbers is: "` `+ oddSum(n));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`Sum of first 20 odd numbers is 400`

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

An efficient solution is to use direct formula. To find the sum of first n odd numbers we can apply odd number theorem, it states that the sum of first n odd numbers is equal to the square of n.

∑(2i – 1) = n2 where i varies from 1 to n

let n = 10, therefore sum of first 10 odd numbers is
1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100
if we apply odd number theorem:
sum of first 10 odd numbers = n * n = 10 * 10 = 100.
Below is the implementation of the above approach:

## C++

 `// Efficient program to find sum of``// first n odd numbers``#include ``using` `namespace` `std;` `// Returns the sum of first``// n odd numbers``int` `oddSum(``int` `n)``{``    ``return` `(n * n);``}` `// Driver function``int` `main()``{``    ``int` `n = 20;``    ``cout << ``" Sum of first "` `<< n``         ``<< ``" Odd Numbers is: "` `<< oddSum(n);``    ``return` `0;``}`

## Java

 `// Java program to find sum of``// first n odd numbers``import` `java.util.*;` `class` `Odd``{  ``    ``// Returns the sum of first``    ``// n odd numbers``    ``public` `static` `int` `oddSum(``int` `n)``    ``{``        ``return` `(n * n);``    ``}``    ` `    ``// driver function``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``20``;``        ``System.out.println(``" Sum of first "``+ n``        ``+``" Odd Numbers is: "``+oddSum(n));``    ``}``}` `// This code is contributed by rishabh_jain`

## Python3

 `# Python3 program to find sum``# of first n odd numbers` `def` `oddSum(n) :``    ``return` `(n ``*` `n);` `# Driver Code``n ``=` `20``print` `(``" Sum of first"` `, n, ``"Odd Numbers is: "``,``                               ``oddSum(n) )` `# This code is contributed by rishabh_jain`

## C#

 `// C# program to find sum of``// first n odd numbers``using` `System;` `class` `GFG {``    ` `    ``// Returns the sum of first``    ``// n odd numbers``    ``public` `static` `int` `oddSum(``int` `n)``    ``{``        ``return` `(n * n);``    ``}` `    ``// driver function``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 20;``        ``Console.WriteLine(``" Sum of first "` `+ n``            ``+ ``" Odd Numbers is: "` `+ oddSum(n));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`Sum of first 20 odd numbers is 400`

Time Complexity: O(1)
Auxiliary Space : O(1)
How does it work?
We can prove it using mathematical induction. We know it is true for n = 1 and n = 2 as sums are 1 and 4 (1 + 3) respectively.

```Let it be true for n = k-1.

Sum of first k odd numbers =
Sum of first k-1 odd numbers + k'th odd number
= (k-1)*(k-1) + (2k - 1)
= k*k```

My Personal Notes arrow_drop_up