西尔维斯特的序列

发布于 2024-03-23 12:22:01 字数 3439 浏览 20 评论 0

在数字系统中,西尔维斯特(Sylvester)的序列是一个整数序列,其中该序列的每个成员都是先前成员加一的乘积。给定正整数N。任务是打印序列的前 N 个成员。
由于数字可能非常大,因此请使用 %10 ^ 9 + 7

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

Input : N = 2
Output : 2 3

这个想法是运行一个循环并获取两个变量,并将它们初始化为 1 和 2,一个变量存储到现在为止,另一个变量存储当前数字,除了第一个数字+ 1 之外什么都没有,对于每一步都使用算术相乘模运算,即(a + b)%N =(a%N + b%N)%N,其中 N 是模数。

以下是此方法的实现:

C++

// CPP program to print terms of Sylvester's sequence
#include 
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 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.

输出:

2 3 7 43 1807 3263443

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

梦萦几度

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文