主题:ISPRIME
兔牙--
[专家分:10] 发布于 2009-04-26 12:52:00
定义函数ISPRIME,其功能是判断某个整数是否是素数。ISPRIME接受一个INT参数num,返回BIT类型的判断结果,若参数num是素数返回1;否则返回0。最后,通过对100~200之间的所有整数用ISPRIME函数检验,打印其中的所有素数。(最好在设计ISPRIME函数时使用内置函数SQRT缩小检查范围,即逐一判断2~sqrt(num)之间是否存在被num整数的数。另外,在打印时最好分若干行输出素数(提示:用CAST函数进行类型转换))
回复列表 (共1个回复)
沙发
linjipeng0 [专家分:220] 发布于 2009-07-28 12:04:00
create function ISPRIME(@num int)
returns bit
As
begin
declare @r bit
set @r=1
declare @i int
set @i=round(sqrt(@num),0)
while @i>1
begin
if @num % @i=0
begin
set @r=0
break
end
set @i=@i-1
end
return @r
end
GO
declare @i int,@r bit
set @i=100
while @i<=200
begin
select @r=dbo.ISPRIME(@i)
if @r=1
begin
print '行'+convert(varchar(10),@i-99)+':数字'+convert(varchar(10),@i)+'为素数'
end
else
begin
print '行'+convert(varchar(10),@i-99)+':数字'+convert(varchar(10),@i)+'非素数'
end
set @i=@i+1
end
我来回复