DECLARE @N INT,@M INT,@K INTSET @N=14
SET @K=2WHILE @K<=(@N-1)
BEGIN
SET @M=@N%@K
IF @M=0
SELECT 质数=NULL,不是质数='√'
BREAK
IF @M!=0
SET @K=@K+1
END
SELECT 质数='√',不是质数=NULL
这是我写的,但是有问题,因为如果不是质数的时候,比如说@N=20的时候,他不仅会输出第一个SELECT,最后一个也会输出,是质数的话就不会出现问题。哪位大虾能够帮我解决一下。谢谢
SET @K=2WHILE @K<=(@N-1)
BEGIN
SET @M=@N%@K
IF @M=0
SELECT 质数=NULL,不是质数='√'
BREAK
IF @M!=0
SET @K=@K+1
END
SELECT 质数='√',不是质数=NULL
这是我写的,但是有问题,因为如果不是质数的时候,比如说@N=20的时候,他不仅会输出第一个SELECT,最后一个也会输出,是质数的话就不会出现问题。哪位大虾能够帮我解决一下。谢谢
解决方案 »
- -- 看似简单的SQL语句,其实会的都是高手! ---
- 简体中文如何写入英文操作系统下的英文mssql数据库,而不乱码?
- 请问如何循环查询所有的表,找出有记录数的表名
- 如何将sql表导成excel?
- 有关安装sql server 2008时出现:MOF 编译器无法连接 WMI 服务器。原因可能是语义错误。不知道怎么解决。
- 使用CASE能实现这样的功能吗?请指示(刚才贴错了,这次才是我要问的问题)
- ms server 數據庫中的圖表有何作用?
- 求助??这个SQL-SELECT语句怎么写呀?
- 如果更改主键的长度?
- 请各位朋友来帮我分析一下,看看这问题能不能直接解决
- 行转列的问题?
- 都开3贴了(存储过程问题)
SET @K=2WHILE @K<=(@N-1)
BEGIN
SET @M=@N%@K
IF @M=0
BEGIN
SELECT 质数=NULL,不是质数='√'
BREAK
END
ELSE
SET @K=@K+1
END
if @M!=0
SELECT 质数='√',不是质数=NULL
这样写就没问题了
SET @K=2WHILE @K<=(@N-1)
BEGIN
SET @M=@N%@K
IF @M=0
BREAK
ELSE
SET @K=@K+1
END
IF @M=0
SELECT 质数=NULL,不是质数='√'
Else
SELECT 质数='√',不是质数=NULL
这样也可以
returns int
as
begin
declare @r int
declare @i int
if @a > 2
begin
if @a % 2 =0
set @r = 0
else
begin
set @i = 3
while @i < sqrt(@a) and @a % @i <>0
begin
set @i = @i + 2
end
if @i > sqrt(@a) set @r = 1 else set @r = 0
end
end
else
set @r = 1
return @r
end
SET @K=@K+1
END
SELECT 质数='√',不是质数=NULL
这个写法有问题,仔细看看。。
和小狼的差不多,
DECLARE @N INT,@M INT,@K INTSET @N=8
SET @K=2WHILE @K<=(@N-1)
BEGIN
SET @M=@N%@K
IF @M=0
BREAK
SET @K=@K+1
ENDIF @K>=(@N-1)
SELECT 质数='√',不是质数=NULL
ELSE
SELECT 质数=NULL,不是质数='√'
SET @K=2WHILE @K<=(@N-1)
BEGIN
SET @M=@N%@K
IF @M=0
BEGIN
SELECT 质数=NULL,不是质数='√'
BREAK
END
ELSE IF @K=@N-1
BEGIN
SELECT 质数='√',不是质数=NULL
END
SET @K=@K+1
END