TSQL program to find the largest prime number

priyanka.sarkar

I have a table of integers as

number
--------
104723
104729
9998
448

Objective is to find the largest prime among a collection of numbers. I have done so with the below program

Declare @t table(number int)
Insert into @t values(104723),(104729),(9998),(448)

Declare @maxNum INT
SELECT @maxNum = MAX(number) FROM @t

--generate a number table from 2 to the maximum number supplied
;WITH Cte AS (
    SELECT 2 AS num 
        UNION ALL
    SELECT num+1 
    FROM cte 
    WHERE num<@maxNum)

SELECT TOP(1) num AS 'Largest Prime' FROM cte
--filter by some known prime numbers (keeping the range between 2 to 19
WHERE 
    (num=2 OR num%2!=0) AND
    (num=3 OR num%3!=0) AND
    (num=5 OR num%5!=0) AND
    (num=7 OR num%7!=0) AND
    (num=11 OR num%11!=0) AND
    (num=13 OR num%13!=0) AND
    (num=17 OR num%17!=0) AND
    (num=19 OR num%19!=0) 
ORDER BY 1 DESC
OPTION (MAXRECURSION 0)


/*
Largest Prime
-------------
104729
*/

But I am sure there will be much more better way to do so. How can I optimize the same?

gofr1

I modified a little bit your query:

DECLARE @t TABLE (number int)
INSERT INTO @t VALUES
(104723),(104729),(9998),(448)

DECLARE @maxNum int
SELECT @maxNum = MAX(number) 
FROM @t

;WITH cte AS (
    SELECT 2 AS num 
    UNION ALL
    SELECT num+1 
    FROM cte 
    WHERE num < @maxNum
)

SELECT MAX(number) as LargestPrime
FROM (
    SELECT number
    FROM @t t
    CROSS JOIN Cte c
    WHERE t.number%c.num=0 
    GROUP BY number
    HAVING COUNT(num) = 1
) as t
OPTION (MAXRECURSION 0)

This will bring largest prime number from @t table:

LargestPrime
104729

The main idea is to get largest number, build CTE with numbers from 2 to max. Then do a Cartesian join, so we can try to get modulo of each number from @t and CTE. If there are numbers which have modulo > 0 more than 1 time - they are not prime.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

C++: Program to find the largest prime factor of a number, what is wrong in my code?

From Dev

C Program to find prime number

From Dev

Find largest prime factor for the number 600851475143L

From Dev

Largest prime factor of a number in Java

From Dev

Find the largest prime factor with Javascript

From Dev

Problems with program which find prime number from 1 to 100

From Dev

Prime number program in haskell

From Dev

Prime Number program

From Dev

Prime number program in C

From Dev

Ruby Prime number program

From Dev

How to find Largest Prime Number, Smallest Factor except 1, Sum of Numbers

From Dev

How to find Largest Prime Number, Smallest Factor except 1, Sum of Numbers

From Dev

TSQL find number of correspondences

From Dev

Find if given number is prime or not

From Dev

Cant find the prime number

From Dev

Function to find largest number

From Dev

Find textbox with the largest number

From Dev

Find second largest number

From Dev

efficient ways of finding the largest prime factor of a number

From Dev

Prolog Program To Check If A Number Is Prime

From Dev

Prolog Program To Check If A Number Is Prime

From Dev

Java: Prime Number Program Not Working

From Dev

Prime number program does not work

From Dev

Can't seem to find why my Prime Number Program doesn't work properly after reprompt for number

From Dev

Is this program to find prime numbers wrong?

From Dev

Find the biggest prime of a number [Python]

From Dev

Find next prime number algorithm

From Dev

Find prime number in C#

From Dev

Find next prime number algorithm