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

24 May, 2021
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 numbersExamples:  
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++
Java
Python3
C#
PHP
Javascript
// A naive CPP program to find sum of// first n odd numbers#include <iostream>using namespace std; // Returns the sum of first// n odd numbersint oddSum(int n){    int sum = 0, curr = 1;    for (int i = 0; i < n; i++) {        sum += curr;        curr += 2;    }    return sum;} // Driver functionint main(){    int n = 20;    cout << " Sum of first " << n         << " Odd Numbers is: " << oddSum(n);    return 0;}
// Java program to find sum of// first n odd numbersimport 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 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 Coden = 20print (" Sum of first" , n, "Odd Numbers is: ",                                oddSum(n) ) # This code is contributed by rishabh_jain
// C# program to find sum of// first n odd numbersusing 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// A naive PHP program to find sum of// first n odd numbers // Returns the sum of first// n odd numbersfunction oddSum($n){    $sum = 0; $curr = 1;    for ($i = 0; $i < $n; $i++)    {        $sum += $curr;        $curr += 2;    }    return $sum;} // Driver Code$n = 20;echo " Sum of first ", $n     , " Odd Numbers is: ", oddSum($n);      // This code is contributed by vt_m.?>
<script> // A naive Javascript program to find sum of// first n odd numbers // Returns the sum of first// n odd numbersfunction oddSum(n){    let sum = 0; curr = 1;    for (let i = 0; i < n; i++)    {        sum += curr;        curr += 2;    }    return sum;} // Driver Codelet n = 20;document.write(" Sum of first " + n     + " Odd Numbers is: " + oddSum(n));      // This code is contributed by gfgking.</script>
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 is1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100if 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++
Java
Python3
C#
PHP
Javascript
// Efficient program to find sum of// first n odd numbers#include <iostream>using namespace std; // Returns the sum of first// n odd numbersint oddSum(int n){    return (n * n);} // Driver functionint main(){    int n = 20;    cout << " Sum of first " << n         << " Odd Numbers is: " << oddSum(n);    return 0;}
// Java program to find sum of// first n odd numbersimport 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 program to find sum# of first n odd numbers def oddSum(n) :    return (n * n); # Driver Coden = 20print (" Sum of first" , n, "Odd Numbers is: ",                               oddSum(n) ) # This code is contributed by rishabh_jain
// C# program to find sum of// first n odd numbersusing 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// Efficient program to find sum of// first n odd numbers // Returns the sum of first// n odd numbersfunction oddSum($n){    return ($n * $n);} // Driver Code$n = 20;echo " Sum of first " , $n,     " Odd Numbers is: ", oddSum($n); // This code is contributed by vt_m.?>
<script>    // Javascript program to find sum of first n odd numbers         // Returns the sum of first    // n odd numbers    function oddSum(n)    {        return (n * n);    }         let n = 20;    document.write(" Sum of first " + n                      + " Odd Numbers is: " + oddSum(n));         // This code is contributed by divyesh072019.</script>
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
 
vt_m
gfgking
divyesh072019
number-theory
series
Mathematical
number-theory
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.