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

Given Mth and Nth term of an 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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

 ` `

Output:

```30
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.