secuencia de Sylvester

En el sistema numérico, la secuencia de Sylvester es una secuencia de enteros en la que cada miembro de la secuencia es el producto de los miembros anteriores, más uno. Dado un entero positivo N . La tarea es imprimir el primer N miembro de la secuencia. 
Dado que los números pueden ser muy grandes, use %10^9 + 7 .
Ejemplos: 
 

Input : N = 6
Output : 2 3 7 43 1807 3263443

Input : N = 2
Output : 2 3

La idea es ejecutar un ciclo y tomar dos variables e inicializarlas como 1 y 2, una para almacenar el producto hasta ahora y otra para almacenar el número actual que no es más que el primer número + 1 y para cada paso multiplicar ambos usando aritmética operación modular, es decir (a + b)%N = (a%N + b%N)%N donde N es un número modular.
A continuación se muestra la implementación de este enfoque: 
 

C++

// CPP program to print terms of Sylvester's sequence
#include <bits/stdc++.h>
using namespace std;
#define N 1000000007
 
void printSequence(int n)
{
    int a = 1; // To store the product.
    int ans = 2; // To store the current number.
 
    // Loop till n.
    for (int i = 1; i <= n; i++) {
        cout << ans << " ";
        ans = ((a % N) * (ans % N)) % N;
        a = ans;
        ans = (ans + 1) % N;
    }
}
 
// Driven Program
int main()
{
    int n = 6;
    printSequence(n);
    return 0;
}

Java

// JAVA Code for Sylvester sequence
import java.util.*;
 
class GFG {
     
    public static void printSequence(int n)
    {
        int a = 1; // To store the product.
        int ans = 2; // To store the current number.
        int N = 1000000007;
         
        // Loop till n.
        for (int i = 1; i <= n; i++) {
           System.out.print(ans + " ");
            ans = ((a % N) * (ans % N)) % N;
            a = ans;
            ans = (ans + 1) % N;
        }
    }
 
    /* Driver program to test above function */
    public static void main(String[] args)
    {
        int n = 6;
        printSequence(n);
         
    }
}
   
// This code is contributed by Arnav Kr. Mandal.

Python

# Python Code for Sylvester sequence
 
def printSequence(n) :
    a = 1 # To store the product.
    ans = 2 # To store the current number.
    N = 1000000007
     
    # Loop till n.
    i = 1
    while i <= n :
        print ans,
        ans = ((a % N) * (ans % N)) % N
        a = ans
        ans = (ans + 1) % N
        i = i + 1
         
 
# Driver program to test above function
n = 6
printSequence(n)
 
# This code is contributed by Nikita Tiwari.

C#

// C# Code for Sylvester sequence
using System;
 
class GFG {
     
    public static void printSequence(int n)
    {
         // To store the product.
        int a = 1;
         
        // To store the current number.
        int ans = 2;
         
        int N = 1000000007;
         
        // Loop till n.
        for (int i = 1; i <= n; i++)
        {
            Console.Write(ans + " ");
            ans = ((a % N) * (ans % N)) % N;
            a = ans;
            ans = (ans + 1) % N;
        }
    }
 
    // Driver program
    public static void Main()
    {
        int n = 6;
        printSequence(n);
         
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP program to print
// terms of Sylvester's sequence
 
$N = 1000000007;
 
function printSequence($n)
{
    global $N;
     
    // To store
    // the product.
    $a = 1;
     
    // To store the
    // current number.
    $ans = 2;
 
    // Loop till n.
    for ($i = 1; $i <= $n; $i++)
    {
        echo $ans ," ";
        $ans = (($a % $N) * ($ans % $N)) % $N;
        $a = $ans;
        $ans = ($ans + 1) % $N;
    }
}
 
    // Driver Code
    $n = 6;
    printSequence($n);
     
// This code is contributed by anuj_67.
?>

Javascript

<script>
// Javascript program to print
// terms of Sylvester's sequence
 
let N = 1000000007;
 
function printSequence(n)
{
 
    // To store
    // the product.
    let a = 1;
     
    // To store the
    // current number.
    let ans = 2;
 
    // Loop till n.
    for (let i = 1; i <= n; i++)
    {
        document.write(ans + " ");
        ans = ((a % N) * (ans % N)) % N;
        a = ans;
        ans = (ans + 1) % N;
    }
}
 
    // Driver Code
    let n = 6;
    printSequence(n);
     
// This code is contributed by gfgking.
</script>

Producción: 
 

2 3 7 43 1807 3263443

Complejidad temporal : O(n) 
Espacio auxiliar : O(1)

Este artículo es una contribución de Anuj Chauhan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *