 Open in App
Not now

# Sum of P terms of an AP if Mth and Nth terms are given

• Last Updated : 27 May, 2022

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

 `// C++ implementation of the above approach``#include ``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

 `// Java implementation of the above approach``import` `java.util.*;` `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 = 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

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

 `// 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;``    ``int` `d = (``int``)ad;` `    ``// 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

 ``

## Javascript

 ``

Output:

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

My Personal Notes arrow_drop_up