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