En este artículo, vamos a imprimir números primos usando MS SQL. Aquí usaremos 2 sentencias while loops para imprimir números primos.
Pasos 1: Primero DECLARAMOS una variable I con valor inicial 2.
Consulta:
DECLARE @I INT=2
Paso 2: Luego DECLARAMOS una variable PRIME con un valor inicial de 0 (esto establecerá el valor de PRIME).
Consulta:
DECLARE @PRIME INT=0
Paso 3: Definición de la tabla
Crearemos una variable de tabla temporal que contendrá números primos (usando las palabras clave DECLARE y TABLE).
Consulta:
DECLARE @OUTPUT TABLE (NUM INT)
Paso 4: Ahora usaremos el bucle while anidado, al igual que escribimos un programa para números primos.
Consulta:
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
Explicación:
- En el primer ciclo while, DECLARAMOS el valor inicial de I como 100, lo que significa que este ciclo nos proporcionará los números primos entre 2 y 100.
- Ahora, declararemos J con el valor inicial como I-1. Como se muestra en el código anterior.
- Luego, se insertará un segundo ciclo while que se ejecutará hasta que J sea mayor que 1.
- si la declaración está allí con la condición @I % @J = 0, lo que significa que cuando el resto de I/J es 0, PRIME se establecerá en 0 y el valor de J se reducirá en 1.
- Si al final del ciclo PRIME se establece en 1, ese número se insertará en nuestra TABLA DE SALIDA utilizando el siguiente código.
Consulta:
INSERT @OUTPUT VALUES (@I)
- Y luego comenzará otro bucle para el siguiente número.
Paso 5: Supongamos que tengo un valor inicial de 4, es decir, I = 4.
- Ahora en el segundo bucle J tendrá un valor inicial de I-1 que es 3.
- Por 4%3 obtendremos 1, por lo que Prime se establecerá en 1 como antes y J se reducirá en 1.
- Ahora, para 4%2, obtendremos 0. Ahora, según nuestra condición, PRIME se establecerá en 0. Dado que 4 tiene más factores que 1 y que él mismo, el ciclo se iniciará nuevamente con un valor incrementado de I, es decir, 5 (Yo+1).
Salida: debajo de la salida para I<=100, lo que significa que imprimirá números primos del 2 al 100.
Publicación traducida automáticamente
Artículo escrito por thenavneet y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA