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)
Explore
DSA Fundamentals
Data Structures
Algorithms
Advanced
Interview Preparation
Practice Problem