如何在 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 的素数。