Open In App

Ratio of mth and nth term in an Arithmetic Progression (AP)

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++ 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 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 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# 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 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
?>




<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>

Output: 
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


Article Tags :