-
Notifications
You must be signed in to change notification settings - Fork 0
/
09.AQ03-PrintPrimeNos.sql
61 lines (47 loc) · 1.87 KB
/
09.AQ03-PrintPrimeNos.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
Write a query to print all prime numbers less than or equal to 1000.
Print your result on a single line, and use the ampersand (&) character as your separator (instead of a space).
For example, the output for all prime numbers <=10 would be:
2&3&5&7
*/
use hackerrank;
GO
raiserror('Now at the create procedure section ....',0,1)
GO
CREATE or ALTER PROCEDURE alternativequeries.proc_03printprime (@OutParams nvarchar(1000) OUT)
AS
DECLARE @i int=2;
declare @prime int = 0;
DECLARE @result nvarchar(1000) = '';
WHILE (@i<=1000)
begin
DECLARE @j int = @i-1;
SET @prime = 1;
WHILE(@j > 1)
begin
IF @i % @j = 0
begin
SET @PRIME = 0;
end
set @j = @j - 1;
end
IF @PRIME = 1
BEGIN
set @result += cast(@i as nvarchar(1000)) + '&';
END
set @i = @i + 1;
end
set @result = SUBSTRING(@result, 1, LEN(@result) - 1)
set @OutParams = @result
GO
CREATE or ALTER PROCEDURE AlternativeQueriesTestClass.test_03printprime
AS
BEGIN
DECLARE @expected nvarchar(1000);
DECLARE @actual nvarchar(1000);
exec alternativequeries.proc_03printprime @actual OUT
SET @expected = '2&3&5&7&11&13&17&19&23&29&31&37&41&43&47&53&59&61&67&71&73&79&83&89&97&101&103&107&109&113&127&131&137&139&149&151&157&163&167&173&179&181&191&193&197&199&211&223&227&229&233&239&241&251&257&263&269&271&277&281&283&293&307&311&313&317&331&337&347&349&353&359&367&373&379&383&389&397&401&409&419&421&431&433&439&443&449&457&461&463&467&479&487&491&499&503&509&521&523&541&547&557&563&569&571&577&587&593&599&601&607&613&617&619&631&641&643&647&653&659&661&673&677&683&691&701&709&719&727&733&739&743&751&757&761&769&773&787&797&809&811&821&823&827&829&839&853&857&859&863&877&881&883&887&907&911&919&929&937&941&947&953&967&971&977&983&991&997';
EXEC tSQLt.assertEquals @expected, @actual;
END;
GO
--exec tSQLt.Run 'AlternativeQueriesTestClass.[test_03printprime]';