SQL计算100以内的质数(可以把100换成任意的整数)
生活随笔
收集整理的這篇文章主要介紹了
SQL计算100以内的质数(可以把100换成任意的整数)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
declare @i int? --定義局部變量@i
declare @j int? --定義局部變量@j
set @i=1??????? --給變量@i賦值
while @i<100? --最外層while循環(huán)控制計(jì)算20以內(nèi)的質(zhì)數(shù),每循環(huán)一次提供一個(gè)數(shù),判斷它是不是質(zhì)數(shù)
? begin???????? --最外層while循環(huán)開始
??? set @j=1??? --給變量@j賦值,外層while每執(zhí)行一次,它都被重新賦值為1
??? while @j<@i --內(nèi)層while循環(huán)判斷外層while循環(huán)提供的@i是不是質(zhì)數(shù)
????? begin
??? if @i=2 --如果@i的值為2就直接打印,因?yàn)?是質(zhì)數(shù)
????? begin
??????? print cast(@i as char)
??????? break --退出內(nèi)層while循環(huán)
????? end
??????? set @j=@j+1? --每次都從2開始除
??????? if @i%@j=0
????? begin
??????? break? --退出內(nèi)層while循環(huán)
????? end
??? else
????? if @j=@i-1? --如果不能被2到@i-1之間的數(shù)整除,就說明是質(zhì)數(shù) 內(nèi)層if...else控制從2到@i-1除一邊
??????????? begin?
????????? print cast(@i as char) --打印質(zhì)數(shù)
????????? break?? --退出內(nèi)層while循環(huán)
??????? end
????? else
??????? begin
????????? continue --繼續(xù)下一次內(nèi)層while循環(huán),每繼續(xù)一次可以使@j的值增加1,從而使@j從2開始一直遞增,一直遞增到@i-1
??????? end
????? end
??? set @i=@i+1 --最外層while循環(huán)的語句,每次都會(huì)被執(zhí)行,目的是使@i遞增1,從而進(jìn)入下一次循環(huán),從而判斷@i是不是質(zhì)數(shù)
declare @j int? --定義局部變量@j
set @i=1??????? --給變量@i賦值
while @i<100? --最外層while循環(huán)控制計(jì)算20以內(nèi)的質(zhì)數(shù),每循環(huán)一次提供一個(gè)數(shù),判斷它是不是質(zhì)數(shù)
? begin???????? --最外層while循環(huán)開始
??? set @j=1??? --給變量@j賦值,外層while每執(zhí)行一次,它都被重新賦值為1
??? while @j<@i --內(nèi)層while循環(huán)判斷外層while循環(huán)提供的@i是不是質(zhì)數(shù)
????? begin
??? if @i=2 --如果@i的值為2就直接打印,因?yàn)?是質(zhì)數(shù)
????? begin
??????? print cast(@i as char)
??????? break --退出內(nèi)層while循環(huán)
????? end
??????? set @j=@j+1? --每次都從2開始除
??????? if @i%@j=0
????? begin
??????? break? --退出內(nèi)層while循環(huán)
????? end
??? else
????? if @j=@i-1? --如果不能被2到@i-1之間的數(shù)整除,就說明是質(zhì)數(shù) 內(nèi)層if...else控制從2到@i-1除一邊
??????????? begin?
????????? print cast(@i as char) --打印質(zhì)數(shù)
????????? break?? --退出內(nèi)層while循環(huán)
??????? end
????? else
??????? begin
????????? continue --繼續(xù)下一次內(nèi)層while循環(huán),每繼續(xù)一次可以使@j的值增加1,從而使@j從2開始一直遞增,一直遞增到@i-1
??????? end
????? end
??? set @i=@i+1 --最外層while循環(huán)的語句,每次都會(huì)被執(zhí)行,目的是使@i遞增1,從而進(jìn)入下一次循環(huán),從而判斷@i是不是質(zhì)數(shù)
? end?????????? --最外層while循環(huán)結(jié)束
本文轉(zhuǎn)自terryli51CTO博客,原文鏈接:http://blog.51cto.com/terryli/519571?,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的SQL计算100以内的质数(可以把100换成任意的整数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【随笔】TongWeb 常见报错
- 下一篇: Drbd+Pacemaker实现高可用