如果我有一个数字 X 并且想说IsPrime(X) = true/false
使用 sql-server 最好的方法是什么?
我只是导入一个素数表还是有一个算法对较小的素数相当有效?
注意:我对大于大约的数字不感兴趣。千万。
最终使用以下内容:
CREATE FUNCTION [dbo].[isPrime]
(
@number INT
)
RETURNS VARCHAR(10)
BEGIN
DECLARE @retVal VARCHAR(10) = 'TRUE';
DECLARE @x INT = 1;
DECLARE @y INT = 0;
WHILE (@x <= @number )
BEGIN
IF (( @number % @x) = 0 )
BEGIN
SET @y = @y + 1;
END
IF (@y > 2 )
BEGIN
SET @retVal = 'FALSE'
BREAK
END
SET @x = @x + 1
END
RETURN @retVal
END