Given two values ‘m’ and ‘n’ and the 5th term of an arithmetic progression is zero. The task is to find the ratio of mth and nth term of this AP.
Examples:
Input: m = 10, n = 20 Output: 1/3 Input: m = 10, n = 15 Output: 1/2
Approach: Acc. to the statement, 5th term is zero. Now understand the concept with an example. As A5=a+4*d=0.
Now, we have to find ratio of m = 10th term and n = 20th term.
A[10]
= A + 9 * d
= A5 + 5 * d
= 0 + 5 * d
= 5 * d
Similarly, A[20]
= A + 19 * d
= A5 + 15 * d
= 0 + 15 * d
= 15 * d
Now, we have to find ratio, so Ans= A[10] / A[20]
Below is the required implementation:
C++
// C++ implementation of above approach #include <bits/stdc++.h> #define ll long long int using namespace std; // Function to find the ratio void findRatio(ll m, ll n) { ll Am = m - 5, An = n - 5; // divide numerator by gcd to get // smallest fractional value ll numerator = Am / (__gcd(Am, An)); // divide denominator by gcd to get // smallest fractional value ll denominator = An / (__gcd(Am, An)); cout << numerator << "/" << denominator << endl; } // Driver code int main() { // let d=1 as d doesn't affect ratio ll m = 10, n = 20; findRatio(m, n); return 0; } |
Java
// java implementation of above approach public class GFG { // Function to calculate the GCD static int GCD( int a, int b) { if (b== 0 ) return a; return GCD(b,a%b); } // Function to find the ratio static void findRatio( int m, int n) { int Am = m - 5 , An = n - 5 ; // divide numerator by GCD to get // smallest fractional value int numerator = Am / GCD(Am, An) ; // divide denominator by GCD to get // smallest fractional value int denominator = An / GCD(Am, An) ; System.out.println(numerator + "/" + denominator); } // Driver code public static void main (String args[]){ // let d=1 as d doesn't affect ratio int m = 10 , n = 20 ; findRatio(m, n); } // This code is contributed by ANKITRAI1 } |
Python3
# Python3 implementation of above approach # Function to find the ratio from fractions import gcd def findRatio(m,n): Am = m - 5 An = n - 5 # divide numerator by gcd to get # smallest fractional value numerator = Am / / (gcd(Am,An)) # divide denominator by gcd to get #smallest fractional value denominator = An / / (gcd(Am, An)) print (numerator, '/' ,denominator) # Driver code # let d=1 as d doesn't affect ratio if __name__ = = '__main__' : m = 10 n = 20 findRatio(m, n) # this code is contributed by sahilshelangia |
C#
// C# implementation of above approach using System; public class GFG { // Function to calculate the GCD static int GCD( int a, int b) { if (b==0) return a; return GCD(b,a%b); } // Function to find the ratio static void findRatio( int m, int n) { int Am = m - 5, An = n - 5 ; // divide numerator by GCD to get // smallest fractional value int numerator = Am / GCD(Am, An) ; // divide denominator by GCD to get // smallest fractional value int denominator = An / GCD(Am, An) ; Console.Write(numerator + "/" + denominator); } // Driver code public static void Main (){ // let d=1 as d doesn't affect ratio int m = 10, n = 20; findRatio(m, n); } } |
PHP
<?php // PHP implementation of above approach function __gcd( $a , $b ) { if ( $b == 0) return $a ; return __gcd( $b , $a % $b ); } // Function to find the ratio function findRatio( $m , $n ) { $Am = $m - 5; $An = $n - 5; // divide numerator by gcd to get // smallest fractional value $numerator = $Am / (__gcd( $Am , $An )); // divide denominator by gcd to // get smallest fractional value $denominator = $An / (__gcd( $Am , $An )); echo $numerator , "/" , $denominator ; } // Driver code // let d=1 as d doesn't affect ratio $m = 10; $n = 20; findRatio( $m , $n ); // This code is contributed // by inder_verma ?> |
Javascript
<script> // Javascript implementation of above approach // Function to calculate the GCD function GCD(a, b) { if (b==0) return a; return GCD(b,a%b); } // Function to find the ratio function findRatio(m,n) { var Am = m - 5, An = n - 5 ; // divide numerator by GCD to get // smallest fractional value var numerator = parseInt(Am / GCD(Am, An)) ; // divide denominator by GCD to get // smallest fractional value var denominator = parseInt(An / GCD(Am, An)); document.write(numerator + "/" + denominator); } // Driver code // let d=1 as d doesn't affect ratio var m = 10, n = 20; findRatio(m, n); </script> |
1/3
Time Complexity: O(log(max(m, n))), where m and n represents the given integers.
Auxiliary Space: O(log(max(m, n))) for call stack because using recursion
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!