Given Mth and Nth terms of arithmetic progression. The task is to find the sum of its first p terms.
Examples:
Input: m = 6, n = 10, mth = 12, nth = 20, p = 5
Output:30
Input:m = 10, n = 20, mth = 70, nth = 140, p = 4
Output:70
Approach: Let a is the first term and d is the common difference of the given AP. Therefore
mth term = a + (m-1)d and nth term = a + (n-1)d
From these two equations, find the value of a and d. Now use the formula of sum of p terms of an AP.
Sum of p terms =
( p * ( 2*a + (p-1) * d ) ) / 2;
Below is the implementation of the above approach:
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std;
// Function to calculate the value of the pair< double , double > findingValues( double m,
double n, double mth, double nth)
{ // Calculate value of d using formula
double d = ( abs (mth - nth)) / abs ((m - 1) - (n - 1));
// Calculate value of a using formula
double a = mth - ((m - 1) * d);
// Return pair
return make_pair(a, d);
} // Function to calculate value sum // of first p numbers of the series double findSum( int m, int n, int mth, int nth, int p)
{ pair< double , double > ad;
// First calculate value of a and d
ad = findingValues(m, n, mth, nth);
double a = ad.first, d = ad.second;
// Calculate the sum by using formula
double sum = (p * (2 * a + (p - 1) * d)) / 2;
// Return the sum
return sum;
} // Driven Code int main()
{ double m = 6, n = 10, mTerm = 12, nTerm = 20, p = 5;
cout << findSum(m, n, mTerm, nTerm, p) << endl;
return 0;
} |
// Java implementation of the above approach import java.util.*;
class GFG
{ // Function to calculate the value of the static ArrayList<Integer> findingValues( int m, int n,
int mth, int nth)
{ // Calculate value of d using formula
int d = (Math.abs(mth - nth)) /
Math.abs((m - 1 ) - (n - 1 ));
// Calculate value of a using formula
int a = mth - ((m - 1 ) * d);
ArrayList<Integer> res= new ArrayList<Integer>();
res.add(a);
res.add(d);
// Return pair
return res;
} // Function to calculate value sum // of first p numbers of the series static int findSum( int m, int n, int mth,
int nth, int p)
{ // First calculate value of a and d
ArrayList<Integer> ad = findingValues(m, n, mth, nth);
int a = ad.get( 0 );
int d = ad.get( 1 );
// Calculate the sum by using formula
int sum = (p * ( 2 * a + (p - 1 ) * d)) / 2 ;
// Return the sum
return sum;
} // Driver Code public static void main (String[] args)
{ int m = 6 , n = 10 , mTerm = 12 , nTerm = 20 , p = 5 ;
System.out.println(findSum(m, n, mTerm, nTerm, p));
} } // This code is contributed by chandan_jnu |
# Python3 implementation of the above approach import math as mt
# Function to calculate the value of the def findingValues(m, n, mth, nth):
# Calculate value of d using formula
d = (( abs (mth - nth)) /
abs ((m - 1 ) - (n - 1 )))
# Calculate value of a using formula
a = mth - ((m - 1 ) * d)
# Return pair
return a, d
# Function to calculate value sum # of first p numbers of the series def findSum(m, n, mth, nth, p):
# First calculate value of a and d
a,d = findingValues(m, n, mth, nth)
# Calculate the sum by using formula
Sum = (p * ( 2 * a + (p - 1 ) * d)) / 2
# Return the Sum
return Sum
# Driver Code m = 6
n = 10
mTerm = 12
nTerm = 20
p = 5
print (findSum(m, n, mTerm, nTerm, p))
# This code is contributed by # Mohit Kumar 29 |
// C# implementation of the above approach using System;
using System.Collections;
class GFG
{ // Function to calculate the value of the static ArrayList findingValues( int m, int n,
int mth, int nth)
{ // Calculate value of d using formula
int d = (Math.Abs(mth - nth)) /
Math.Abs((m - 1) - (n - 1));
// Calculate value of a using formula
int a = mth - ((m - 1) * d);
ArrayList res= new ArrayList();
res.Add(a);
res.Add(d);
// Return pair
return res;
} // Function to calculate value sum // of first p numbers of the series static int findSum( int m, int n, int mth,
int nth, int p)
{ // First calculate value of a and d
ArrayList ad = findingValues(m, n, mth, nth);
int a = ( int )ad[0];
int d = ( int )ad[1];
// Calculate the sum by using formula
int sum = (p * (2 * a + (p - 1) * d)) / 2;
// Return the sum
return sum;
} // Driver Code public static void Main ()
{ int m = 6, n = 10, mTerm = 12, nTerm = 20, p = 5;
Console.WriteLine(findSum(m, n, mTerm, nTerm, p));
} } // This code is contributed by chandan_jnu |
<?php // PHP implementation of the above approach // Function to calculate the value of the function findingValues( $m , $n , $mth , $nth )
{ // Calculate value of d using formula
$d = ( abs ( $mth - $nth )) /
abs (( $m - 1) - ( $n - 1));
// Calculate value of a using formula
$a = $mth - (( $m - 1) * $d );
// Return pair
return array ( $a , $d );
} // Function to calculate value sum // of first p numbers of the series function findSum( $m , $n , $mth , $nth , $p )
{ // First calculate value of a and d
$ad = findingValues( $m , $n , $mth , $nth );
$a = $ad [0];
$d = $ad [1];
// Calculate the sum by using formula
$sum = ( $p * (2 * $a + ( $p - 1) * $d )) / 2;
// Return the sum
return $sum ;
} // Driver Code $m = 6;
$n = 10;
$mTerm = 12;
$nTerm = 20;
$p = 5;
echo findSum( $m , $n , $mTerm , $nTerm , $p );
// This code is contributed by Ryuga ?> |
<script> // JavaScript implementation of the above approach
// Function to calculate the value of the
function findingValues(m, n, mth, nth)
{
// Calculate value of d using formula
let d = parseInt(
(Math.abs(mth - nth)) / Math.abs((m - 1) - (n - 1)), 10);
// Calculate value of a using formula
let a = mth - ((m - 1) * d);
let res = [];
res.push(a);
res.push(d);
// Return pair
return res;
}
// Function to calculate value sum
// of first p numbers of the series
function findSum(m, n, mth, nth, p)
{
// First calculate value of a and d
let ad = findingValues(m, n, mth, nth);
let a = ad[0];
let d = ad[1];
// Calculate the sum by using formula
let sum = parseInt((p * (2 * a + (p - 1) * d)) / 2, 10);
// Return the sum
return sum;
}
let m = 6, n = 10, mTerm = 12, nTerm = 20, p = 5;
document.write(findSum(m, n, mTerm, nTerm, p));
</script> |
30
Time Complexity: O(1), the code will run in a constant time.
Auxiliary Space: O(1), no extra space is required, so it is a constant.