# Find sum of Series with n-th term as n^2 – (n-1)^2

We are given an integer n and n-th term in a series as expressed below:

`Tn = n2 - (n-1)2`

We need to find Sn mod (109 + 7), where Sn is the sum of all of the terms of the given series and,

`Sn = T1 + T2 + T3 + T4 + ...... + Tn`

Examples:

```Input : 229137999
Output : 218194447

Input : 344936985
Output : 788019571
```

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

Let us do some calculations, before writing the program. Tn can be reduced to give 2n-1 . Let’s see how:

```Given, Tn = n2 - (n-1)2
Or, Tn =  n2 - (1 + n2 - 2n)
Or, Tn =  n2 - 1 - n2 + 2n
Or, Tn =  2n - 1.
```

Now, we need to find ∑Tn.

∑Tn = ∑(2n – 1)

We can simplify the above formula as,
∑(2n – 1) = 2*∑n – ∑1
Or, ∑(2n – 1) = 2*∑n – n.
Where, ∑n is the sum of first n natural numbers.

We know the sum of n natural number = n(n+1)/2.

Therefore, putting this value in the above equation we will get,

∑Tn = (2*(n)*(n+1)/2)-n = n2

Now the value of n2 can be very large. So instead of direct squaring n and taking mod of the result. We will use the property of modular multiplication for calculating squares:

(a*b)%k = ((a%k)*(b%k))%k

Below is the implementation of above idea:

## CPP

 `// CPP program to find sum of given ` `// series. ` `#include ` `using` `namespace` `std; ` ` `  `#define mod 1000000007 ` ` `  `// Function to find sum of series ` `// with nth term as n^2 - (n-1)^2 ` `long` `long` `findSum(``long` `long` `n) ` `{ ` `    ``return` `((n%mod)*(n%mod))%mod;    ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``long` `long` `n = 229137999;     ` `    ``cout << findSum(n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find sum of given ` `// series. ` ` `  `public` `class` `FINDSUM { ` `     `  `    ``static` `long` `mod = ``1000000007``; ` `     `  `    ``public` `static` `long` `findSum(``long` `n) ` `    ``{ ` `        ``return` `((n % mod) * (n % mod)) % mod;    ` `    ``} ` `     `  `    ``public` `static` `void` `main(String[] args) { ` `        ``long` `n = ``229137999``;     ` `        ``System.out.print (findSum(n)); ` `    ``} ` `} ` ` `  `// Contributed by _omg `

## Python 3

 `# Python program to find sum of given ` `# series. ` ` `  `mod ``=` `1000000007` `def` `findSum(n): ` `    ``return` `((n ``%` `mod) ``*` `(n ``%` `mod)) ``%` `mod ` `     `  `     `  `# main() ` `n ``=` `229137999`     `print` `(findSum(n)) ` ` `  `# Contributed by _omg `

## C#

 `// C# program to find sum of given ` `// series. ` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``static` `long` `mod = 1000000007; ` `     `  `    ``static` `long` `findSum(``long` `n) ` `    ``{ ` `        ``return` `((n % mod) * (n % mod)) % mod;    ` `    ``} ` ` `  `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``long` `n = 229137999; ` `        ``Console.Write (findSum(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by _omg `

## PHP

 ` `

Output:

```218194447
```

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.

Improved By : jit_t

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.