利用存储过程录入连续的素数序列

表初始行:

序号Note
12
23
35
47

存储过程:

DELIMITER $$

USE `db2020`$$

DROP PROCEDURE IF EXISTS `ins_prime`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `ins_prime`(IN allSize INT)
BEGIN
DECLARE i INT DEFAULT 4;
DECLARE j INT DEFAULT 2;
DECLARE num INT DEFAULT 11;
DECLARE d INT DEFAULT 1;
DECLARE p INT DEFAULT 3;
DECLARE sq INT DEFAULT 1;
WHILE i<allSize DO
	SET d=1;
	SET sq = SQRT(num);
	SET j = 2;
	WHILE(j<=sq AND d=1) DO
		SELECT val INTO p FROM prime WHERE id = j;
		IF ( MOD(num,p )=0 ) THEN
			SET d=0;
		END IF;
		SET j = j+1;
	END WHILE;	
	IF (d=1) THEN	
		SET i = i + 1;
		INSERT INTO prime (id,val) VALUES (i,num);
	END IF;
	SET num = num +2;
END WHILE;
    END$$

DELIMITER ;
CALL ins_prime(10303);

结果摘录:

序号Note
511
613
717
819
923
1029
1131
1237
1341
1443
1547
1653
1759
1861
1967
2071
2173
2279
2383
2489
2597
26101
27103
28107
29109
30113
31127
32131
33137
34139
35149
36151
37157
38163
39167
40173
41179
42181
43191
44193
45197
46199
47211
48223
49227
50229
51233
52239
53241
54251

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值