create function isPrime(@number int)
returns @prime table (id int identity(1,1),prime int)
as
begin
declare @n int
select @n=2
while @n<=sqrt(@number)
begin
if @number%@n<>0
set @n=@n+1
end
if @n>sqrt(@number)
insert @prime select @number
else
begin
if @number%2 =0
insert @prime select 2
set @n=3
while @n<@number
begin
if @number%@n=0
begin
insert @prime select @n
if @@identity=2
break
end
set @n=@n+2
end
end
return
end
goselect * from dbo.isPrime(11)
/*
id prime
1 11
*/select * from dbo.isPrime(33)
/*
id prime
1 3
2 11
*/
returns @prime table (id int identity(1,1),prime int)
as
begin
declare @n int
select @n=2
while @n<=sqrt(@number)
begin
if @number%@n<>0
set @n=@n+1
end
if @n>sqrt(@number)
insert @prime select @number
else
begin
if @number%2 =0
insert @prime select 2
set @n=3
while @n<@number
begin
if @number%@n=0
begin
insert @prime select @n
if @@identity=2
break
end
set @n=@n+2
end
end
return
end
goselect * from dbo.isPrime(11)
/*
id prime
1 11
*/select * from dbo.isPrime(33)
/*
id prime
1 3
2 11
*/
returns @prime table (id int identity(1,1),prime int)
as
begin
declare @n int
select @n=2 while @n<=sqrt(@number)
begin
if @number%@n<>0
set @n=@n+1
else
break
end if @n>sqrt(@number)
insert @prime select @number
else
begin
select @n=2
if @number%2 =0
insert @prime select 2
set @n=3
while @n<@number
begin
if @number%@n=0
begin
insert @prime select @n
if @@identity=2
break
end
set @n=@n+2
end
end
return
end
go