SQL计算100以内的质数(可以把100换成任意的整数)

本文介绍了一个使用SQL实现的质数查找算法示例。通过嵌套的WHILE循环结构,该示例能够有效地判断并打印出20以内的所有质数。外层循环负责提供待验证的数字,而内层循环则用于判断这些数字是否为质数。
declare @i int  --定义局部变量@i
declare @j int  --定义局部变量@j
set @i=1        --给变量@i赋值
while @i<100  --最外层while循环控制计算20以内的质数,每循环一次提供一个数,判断它是不是质数
  begin         --最外层while循环开始
    set @j=1    --给变量@j赋值,外层while每执行一次,它都被重新赋值为1
    while @j<@i --内层while循环判断外层while循环提供的@i是不是质数
      begin
    
if @i=2 --如果@i的值为2就直接打印,因为2是质数
      begin
        
print cast(@i as char)
        
break --退出内层while循环
      end
        
set @j=@j+1  --每次都从2开始除
        if @i%@j=0
      
begin
        
break  --退出内层while循环
      end
    
else
      
if @j=@i-1  --如果不能被2到@i-1之间的数整除,就说明是质数 内层if...else控制从2到@i-1除一边
            begin 
          
print cast(@i as char--打印质数
          break   --退出内层while循环
        end
      
else
        
begin
          
continue --继续下一次内层while循环,每继续一次可以使@j的值增加1,从而使@j从2开始一直递增,一直递增到@i-1
        end
      
end
    
set @i=@i+1 --最外层while循环的语句,每次都会被执行,目的是使@i递增1,从而进入下一次循环,从而判断@i是不是质数
  end           --最外层while循环结束
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值