Encuentre la suma de la Serie con el término n como n ^ 2 – (n-1) ^ 2

Nos dan un número entero n y n-ésimo término en una serie como se expresa a continuación: 
 

Tn = n2 - (n-1)2

Necesitamos encontrar S n mod (10 9 + 7), donde S n es la suma de todos los términos de la serie dada y, 
 

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

Ejemplos: 
 

Input : 229137999
Output : 218194447

Input : 344936985
Output : 788019571

Hagamos algunos cálculos, antes de escribir el programa. Tn se puede reducir para dar 2n-1. Veamos cómo: 
 

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

Ahora, necesitamos encontrar ∑T n
 

∑T n = ∑(2n – 1)

Podemos simplificar la fórmula anterior como, 
∑(2n – 1) = 2*∑n – ∑1 
O, ∑(2n – 1) = 2*∑n – n. 
Donde, ∑n es la suma de los primeros n números naturales. 
Conocemos la suma de n números naturales = n(n+1)/2.
Por lo tanto, poniendo este valor en la ecuación anterior obtendremos, 
 

∑T norte = (2*( n )*(n+1)/2)-n = norte 2

Ahora el valor de n 2 puede ser muy grande. Entonces, en lugar de elevar directamente al cuadrado n y tomar mod del resultado. Usaremos la propiedad de la multiplicación modular para calcular cuadrados: 
 

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

A continuación se muestra la implementación de la idea anterior: 
 

CPP

// CPP program to find sum of given
// series.
#include<bits/stdc++.h>
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

<?php
// PHP program to find
// sum of givenseries.
 
$mod = 1000000007;
 
// Function to find sum of series
// with nth term as n^2 - (n-1)^2
function findSum($n)
{
    global $mod;
    return (($n % $mod) *
            ($n % $mod)) % $mod;
}
 
// Driver code
$n = 229137999;
echo(findSum($n));
 
// This code is contributed by Ajit.
?>

Javascript

<script>
 
    // Javascript program to find sum of given series.
     
    let mod = 1000000007;
       
    function findSum(n)
    {
        return ((n % mod) * (n % mod)) % mod + 1;  
    }
     
    let n = 229137999;
      document.write(findSum(n));
     
</script>

Producción:  

218194447

Publicación traducida automáticamente

Artículo escrito por Sahil Srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *