计算某个范围之内的所有质数 /* --功能:计算某个范围之内的所有质数 --作者: --日期:20180927 --语言:t-sql for sql server 2012 sp4 */ DECLARE @n INT= 10000; --计算自然数的最大值 DECLARE @d INT= 2; --除数,检验@n能够被2-ceiling(power(@i,0.5))之间的数整除 DECLARE @bit BIT; --整除标识,如果能够被@d整除则=0,如果不能够被@d整除则=1 DECLARE @i INT= 1; --1-@n之间的自然数 WHILE @i <= @n BEGIN SET @d = 2;--@i每次变更需要@d重新从2开始 SET @bit = 1;--@i每次变更需要@bit重新从1开始 WHILE @d <= CEILING(POWER(@i * 1.0, 0.5)) AND @bit = 1 BEGIN SET @bit = CASE WHEN @i IN ( 1, 2 ) THEN 1 WHEN @i % @d <>0 THEN 1 ELSE 0 END; SET @d += 1; END; IF @bit = 1 PRINT @i; IF @i <= 2 SET @i += 1;--2以内步进值为1 ELSE SET @i += 2;--3以上步进值为2,除了2之外所有的偶数都不是质数 END;