· 8 years ago · Jan 25, 2018, 10:10 PM
1DELIMITER ||
2DROP PROCEDURE IF EXISTS sp_listar_primos||
3CREATE PROCEDURE sp_listar_primos()
4 BEGIN
5 CREATE TEMPORARY TABLE IF NOT EXISTS tmp_primos (numero TINYINT UNSIGNED NOT NULL) ENGINE=MEMORY;
6 SET @n = 0;
7
8 REPEAT
9 SET @n = @n + 1;
10
11 REPEAT
12 SET @c = 0;
13 SET @x = @n;
14
15 IF (MOD(@x, 2) = 0) THEN
16 SET @c = @c + 1;
17 END IF;
18
19 IF (@c < 3) THEN
20 INSERT INTO tmp_primos VALUES (@n);
21 END IF;
22
23 SET @x = @x - 1;
24 UNTIL @x = 0 END REPEAT;
25
26 UNTIL @n = 200 END REPEAT;
27
28 SELECT * FROM tmp_primos;
29 DROP TABLE tmp_primos;
30 END;
31||
32DELIMITER ;
33CALL sp_listar_primos();