Find N Geometric Means between A and B

Given three integers A, B and N the task is to find N Geometric means between A and B. WE basically need to insert N terms in a Geometric progression. where A and B are first and last terms.
Examples:
Input : A = 2 B = 32 N = 3
Output : 4 8 16
the geometric progression series as 2,
4, 8, 16 , 32
Input : A = 3 B = 81 N = 2
Output : 9 27
Approach :
Let A1, G2, G3, G4……Gn be N geometric Means between two given numbers A and B . Then A, G1, G2 ….. Gn, B will be in Geometric Progression .
So B = (N+2)th term of the Geometric progression.
Then Here R is the common ratio
B = A*RN+1
RN+1 = B/A
R = (B/A)1/(N+1)
Now we have the value of R
And also we have the value of the first term A
G1 = AR1 = A * (B/A)1/(N+1)
G2 = AR2 = A * (B/A)2/(N+1)
G3 = AR3 = A * (B/A)3/(N+1)
.
.
.
GN = ARN = A * (B/A)N/(N+1)
C++
// C++ program to find n geometric means// between A and B#include <bits/stdc++.h>using namespace std;// Prints N geometric means between// A and B.void printGMeans(int A, int B, int N){ // calculate common ratio(R) float R = (float)pow(float(B / A), 1.0 / (float)(N + 1)); // for finding N the Geometric // mean between A and B for (int i = 1; i <= N; i++) cout << A * pow(R, i) <<" "; }// Driver code to test above int main(){ int A = 3, B = 81, N = 2; printGMeans(A, B, N); return 0;} |
Java
// java program to illustrate// n geometric mean between // A and Bimport java.io.*;import java.lang.*;import java.util.*;public class GFG { // insert function for calculating the means static void printGMeans(int A, int B, int N) { // Finding the value of R Common ration float R = (float)Math.pow((float)(B / A), 1.0 / (float)(N + 1)); // for finding N the Geometric // mean between A and B for (int i = 1; i <= N; i++) System.out.print(A * Math.pow(R, i) + " "); } // Driver code public static void main(String args[]) { int A = 3, B = 81, N = 2; printGMeans(A, B, N); }} |
Python3
# Python3 program to find# n geometric means# between A and Bimport math# Prints N geometric means # between A and B.def printGMeans(A, B, N): # calculate # common ratio(R) R = (math.pow((B / A), 1.0 / (N + 1))); # for finding N the # Geometric mean # between A and B for i in range(1, N + 1): print(int(A * math.pow(R, i)), end = " "); # Driver CodeA = 3;B = 81;N = 2;printGMeans(A, B, N); # This code is contributed# by mits |
C#
// C# program to illustrate// n geometric mean between // A and Busing System;public class GFG { // insert function for calculating the means static void printGMeans(int A, int B, int N) { // Finding the value of R Common ration float R = (float)Math.Pow((float)(B / A), 1.0 / (float)(N + 1)); // for finding N the Geometric // mean between A and B for (int i = 1; i <= N; i++) Console.Write(A * Math.Pow(R, i) + " "); } // Driver code public static void Main() { int A = 3, B = 81, N = 2; printGMeans(A, B, N); }}// This code is contributed by vt_m. |
PHP
<?php// PHP program to find// n geometric means// between A and B// Pr$s N geometric means // between A and B.function printGMeans($A, $B, $N){ // calculate common ratio(R) $R = pow(($B / $A), 1.0 / ($N + 1)); // for finding N the Geometric // mean between A and B for ($i = 1; $i <= $N; $i++) echo $A * pow($R, $i) ," "; } // Driver Code $A = 3; $B = 81; $N = 2; printGMeans($A, $B, $N); // This code is contributed by anuj_67.?> |
Javascript
<script>// JavaScript program to illustrate// n geometric mean between // A and B // insert function for calculating the means function printGMeans(A, B, N) { // Finding the value of R Common ration let R = Math.pow((B / A), 1.0 / (N + 1)); // for finding N the Geometric // mean between A and B for (let i = 1; i <= N; i++) document.write(A * Math.pow(R, i) + " "); }// Driver Code let A = 3, B = 81, N = 2; printGMeans(A, B, N);// This code is contributed by code_hunt.</script> |
Output :
9 27
Time Complexity : O(N*log(N)) ,in worst case power function takes log(N) time.
Space Complexity : O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



