📜  如何在 MS SQL Server 中打印素数?

📅  最后修改于: 2022-05-13 01:55:31.133000             🧑  作者: Mango

如何在 MS SQL Server 中打印素数?

在本文中,我们将使用 MS SQL 打印素数。在这里,我们将使用 2 个 while 循环语句来打印素数。

步骤 1:首先我们将声明一个变量 I,初始值为 2。

询问:

DECLARE @I INT=2

第 2 步:然后我们将声明一个初始值为 0 的变量 PRIME(这将设置 PRIME 的值)。

询问:

DECLARE @PRIME INT=0

第三步:表定义

我们将创建一个临时表变量来保存素数(使用 DECLARE 和 TABLE 关键字)。

询问:

DECLARE @OUTPUT TABLE (NUM INT)

第 4 步:现在我们将使用嵌套的 while 循环,就像我们为素数编写程序一样。

询问:

DECLARE @I INT=2
DECLARE @PRIME INT=0
DECLARE @OUTPUT TABLE (NUM INT)
WHILE @I<=100
BEGIN
    DECLARE @J INT = @I-1
    SET @PRIME=1
    WHILE @J>1
    BEGIN
        IF @I % @J=0
        BEGIN
            SET @PRIME=0
        END
        SET @J=@J-1
    END
    IF @PRIME =1
    BEGIN
        INSERT @OUTPUT VALUES (@I)
    END
    SET @I=@I+1
END
SELECT * FROM @OUTPUT

解释:

  • 在第一个 while 循环中,我们将 I 的初始值声明为 100,这意味着该循环将为我们提供 2 到 100 之间的素数。
  • 现在,我们将 J 声明为初始值为 I-1。如上面的代码所示。
  • 然后,将插入第二个 while 循环,该循环将一直运行到 J 大于 1。
  • 如果该语句存在条件@I % @J = 0,这意味着当I/J的余数为0时,PRIME将被设置为0,J的值减1。
  • 如果在循环结束时将 PRIME 设置为 1,则该数字将使用以下代码插入到我们的 OUTPUT TABLE 中。

询问:

INSERT @OUTPUT VALUES (@I)
  • 然后另一个循环将为下一个数字开始。

第5步:假设我有一个初始值为4,即I = 4。

  • 现在在第二个循环中,J 的初始值为 I-1,即 3。
  • 通过 4%3,我们将得到 1,因此 Prime 将像以前一样设置为 1,并且 J 减 1。
  • 现在对于 4%2,我们将得到 0,现在根据我们的条件,PRIME 将被设置为 0。由于 4 的因子比 1 和它本身多,循环将再次以递增的值 I 开始,即 5 (我+1)。

输出:低于 I<=100 的输出,这意味着它将打印从 2 到 100 的素数。