Geometric Progression - GeeksforGeeks

06 Jun, 2021
A sequence of numbers is called a Geometric progression if the ratio of any two consecutive terms is always same. In simple terms, it means that next number in the series is calculated by multiplying a fixed number to the previous number in the series.For example, 2, 4, 8, 16 is a GP because ratio of any two consecutive terms in the series (common difference) is same (4 / 2 = 8 / 4 = 16 / 8 = 2). 
Fact about Geometric Progression : 
Initial term: In a geometric progression, the first number is called the initial term.Common ratio: The ratio between a term in the sequence and the term before it is called the “common ratio.” The behaviour of a geometric sequence depends on the value of the common ratio. If the common ratio is:Positive, the terms will all be the same sign as the initial term.Negative, the terms will alternate between positive and negative.Greater than 1, there will be exponential growth towards positive or negative infinity (depending on the sign of the initial term). 1, the progression is a constant sequence.Between -1 and 1 but not zero, there will be exponential decay towards zero.-1, the progression is an alternating sequence.Less than -1, for the absolute values there is exponential growth towards (unsigned) infinity, due to the alternating sign.
Initial term: In a geometric progression, the first number is called the initial term.
Common ratio: The ratio between a term in the sequence and the term before it is called the “common ratio.” 
The behaviour of a geometric sequence depends on the value of the common ratio. If the common ratio is:Positive, the terms will all be the same sign as the initial term.Negative, the terms will alternate between positive and negative.Greater than 1, there will be exponential growth towards positive or negative infinity (depending on the sign of the initial term). 1, the progression is a constant sequence.Between -1 and 1 but not zero, there will be exponential decay towards zero.-1, the progression is an alternating sequence.Less than -1, for the absolute values there is exponential growth towards (unsigned) infinity, due to the alternating sign.
Positive, the terms will all be the same sign as the initial term.
Negative, the terms will alternate between positive and negative.
Greater than 1, there will be exponential growth towards positive or negative infinity (depending on the sign of the initial term). 
1, the progression is a constant sequence.
Between -1 and 1 but not zero, there will be exponential decay towards zero.
-1, the progression is an alternating sequence.
Less than -1, for the absolute values there is exponential growth towards (unsigned) infinity, due to the alternating sign.
Formula of nth term of an Geometric Progression : If ‘a’ is the first term and ‘r’ is the common ratio.Thus, the explicit formula is  
Formula of sum of nth term of Geometric Progression:  
How we check whether a series is geometric progression or not?Let’s find the ratio of the consecutive terms, so we can say that the ratio of the consecutive terms of given sequences is 13 or a constant. So this sequence is forming a geometrical progression. 
C++
Java
Python3
C#
PHP
Javascript
// C++ program to check if a given array// can form geometric progression#include <bits/stdc++.h>using namespace std; bool is_geometric(int arr[], int n){    if (n == 1)        return true;     // Calculate ratio    int ratio = arr[1] / (arr[0]);     // Check the ratio of the remaining    for (int i = 1; i < n; i++) {        if ((arr[i] / (arr[i - 1])) != ratio) {            return false;        }    }    return true;} // Driven Programint main(){    int arr[] = { 2, 6, 18, 54 };    int n = sizeof(arr) / sizeof(arr[0]);     (is_geometric(arr, n)) ? (cout << "True" << endl) : (cout << "False" << endl);     return 0;}
// Java program to check if a given array// can form geometric progressionimport java.util.Arrays; class GFG {     // function to check series is    // geometric progression or not    static boolean is_geometric(int arr[], int n)    {        if (n == 1)            return true;         // Calculate ratio        int ratio = arr[1] / (arr[0]);         // Check the ratio of the remaining        for (int i = 1; i < n; i++) {            if ((arr[i] / (arr[i - 1])) != ratio) {                return false;            }        }        return true;    }     // driver code    public static void main(String[] args)    {        int arr[] = { 2, 6, 18, 54 };        int n = arr.length;         if (is_geometric(arr, n))            System.out.println("True");        else            System.out.println("False");    }}
def is_geometric(li):    if len(li) <= 1:        return True             # Calculate ratio    ratio = li[1]/float(li[0])         # Check the ratio of the remaining    for i in range(1, len(li)):        if li[i]/float(li[i-1]) != ratio:            return False    return True print(is_geometric([2, 6, 18, 54]))
// C# program to check if a given array// can form geometric progressionusing System; class Geeks {     static bool is_geometric(int[] arr, int n)    {        if (n == 1)            return true;         // Calculate ratio        int ratio = arr[1] / (arr[0]);         // Check the ratio of the remaining        for (int i = 1; i < n; i++) {            if ((arr[i] / (arr[i - 1])) != ratio) {                return false;            }        }        return true;    }     // Driven Program    public static void Main(String[] args)    {        int[] arr = new int[] { 2, 6, 18, 54 };        int n = arr.Length;         if (is_geometric(arr, n))            Console.WriteLine("True");        else            Console.WriteLine("False");    }}
<?phpfunction is_geometric($arr){    if (sizeof($arr) <= 1)        return True;    # Calculate ratio    $ratio = $arr[1]/$arr[0];        # Check the ratio of the remaining    for($i=1; $i<sizeof($arr); $i++)    {        if (($arr[$i]/($arr[$i-1])) != $ratio)        {            return "Not a geometric sequence";        }    }         return "Geometric  sequence";}$my_arr1 = array(2, 6, 18, 54);  print_r(is_geometric($my_arr1)."\n");print_r(is_geometric($my_arr2)."\n");?>
<script> // Javascript program to check if a given array// can form geometric progression // Function to check series is// geometric progression or notfunction is_geometric(arr, n){    if (n == 1)        return true;     // Calculate ratio    let ratio = parseInt(arr[1] / (arr[0]));     // Check the ratio of the remaining    for(let i = 1; i < n; i++)    {        if (parseInt((arr[i] /                     (arr[i - 1]))) != ratio)        {            return false;        }    }    return true;} // Driver codelet arr = [ 2, 6, 18, 54 ];let n = arr.length; (is_geometric(arr, n)) ?(document.write("True")) :(document.write("False")); // This code is contributed by souravmahato348 </script>
Output: 
True
Basic Program related to Geometric Progression 
Program to print GP (Geometric Progression)
Program for sum of geometric series
Find the missing number in Geometric Progression
Program for N-th term of Geometric Progression series
Find all triplets in a sorted array that forms Geometric Progression
Removing a number from array to make it Geometric Progression
Minimum number of operations to convert a given sequence into a Geometric Progression
Number of GP (Geometric Progression) subsequences of size 3
More problems related to Geometric Progression 
Find the sum of series 3, -6, 12, -24 . . . upto N terms
Find the sum of the series 2, 5, 13, 35, 97
Area of squares formed by joining mid points repeatedly
Longest Geometric Progression
Recent Articles on Geometric Progression! 
souravmahato348
Geometric Progression
series
Mathematical
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Program to find GCD or HCF of two numbers
Sieve of Eratosthenes
Print all possible combinations of r elements in a given array of size n
Operators in C / C++
The Knight's tour problem | Backtracking-1
Program for factorial of a number
Program for Decimal to Binary Conversion