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
Input : 229137999 Output : 218194447 Input : 344936985 Output : 788019571
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
Please refer complete article on Find sum of Series with n-th term as n^2 – (n-1)^2 for more details!
- LongStream.Builder build() in Java
- DoubleStream.Builder build() in Java
- Java 8 | Consumer Interface in Java with Examples
- MouseListener and MouseMotionListener in Java
- Java Program for Selection Sort
- Java Program for Bubble Sort
- Java Program for Insertion Sort
- Java Program for Heap Sort
- Java Program for Radix Sort
- Java Program for n-th Fibonacci numbers
- Java Program for Counting Sort
- Java Program for ShellSort
- Java Program for Longest Common Subsequence
- Java Program for Binary Search (Recursive and Iterative)
- Java Program 0-1 Knapsack Problem
- Java Program for Min Cost Path
- Java Program for Longest Increasing Subsequence
- Java Program for GCD of more than two (or array) numbers
- Java Program for Common Divisors of Two Numbers
- Java Program for Bitonic Sort