回 帖 发 新 帖 刷新版面

主题:ISPRIME

定义函数ISPRIME,其功能是判断某个整数是否是素数。ISPRIME接受一个INT参数num,返回BIT类型的判断结果,若参数num是素数返回1;否则返回0。最后,通过对100~200之间的所有整数用ISPRIME函数检验,打印其中的所有素数。(最好在设计ISPRIME函数时使用内置函数SQRT缩小检查范围,即逐一判断2~sqrt(num)之间是否存在被num整数的数。另外,在打印时最好分若干行输出素数(提示:用CAST函数进行类型转换))

回复列表 (共1个回复)

沙发

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


我来回复

您尚未登录,请登录后再回复。点此登录或注册