Sylvester’s sequence
In number system, Sylvester’s sequence is an integer sequence in which each member of the sequence is the product of the previous members, plus one. Given a positive integer N. The task is to print the first N member of the sequence.
Since numbers can be very big, use %10^9 + 7.
Examples:
Input : N = 6 Output : 2 3 7 43 1807 3263443 Input : N = 2 Output : 2 3
The idea is to run a loop and take two variables and initialise them as 1 and 2, one to store the product till now and other to store the current number which is nothing but the first number + 1 and for each step multiply both using arithmetic modular operation i.e (a + b)%N = (a%N + b%N)%N where N is a modular number.
Below is the implementation of this approach:
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> |
Output:
2 3 7 43 1807 3263443
Time complexity : O(n)
Auxiliary Space : O(1)
Contact Us