SQL Premier numéro de la fonction

Si j'ai un nombre X et que vous voulez dire IsPrime(X) = true/false à l'aide de sql-server quelle est la meilleure approche?

Dois-je simplement importer une table de nombres premiers ou est-il un algorithme qui est assez efficace pour les plus petits nombres premiers?

Note: je ne suis pas intéressé par les nombres supérieurs à approx. 10 millions de dollars.

Terminé vers le haut en utilisant les suivantes:

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
Allez voir le lien ci-dessous si ça vous aide: social.msdn.microsoft.com/Forums/en-US/transactsql/thread/...
Rien ne sera plus rapide que la copie de nombres à partir de ce site dans un tableau. Surtout depuis que vous avez une limite, par conséquent, vous n'avez pas à calculer à chaque fois: bigprimes.net/archive/prime/1 Ne vous méprenez pas, le calcul des nombres Premiers est bon'ol geek plaisir, mais de façon réaliste, un oeil est plus rapide et que SQL Server est conçu pour faire.
mathsisfun.com/numbers/prime-number-lists.html

OriginalL'auteur whytheq | 2013-03-22

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *