2017-04-22 2 views
-4

1000이라고 할 때까지 모든 소수를 인쇄하려면 어떤 종류의 알고리즘을 사용해야합니까?SQL에서 n까지 모든 소수를 인쇄하는 가장 쉬운 방법은 무엇입니까?

SQL Server가 좋습니다.

감사

+0

이 SQL에 대한 적절한 문제가되지 않습니다. –

+1

일부 소수점까지 모든 소수의 테이블을 만듭니다. 그것을 선택하십시오. –

+1

두 번째 @GordonLinoff, 처음에는 SQL 초에 적절한 문제가 아니며 SO – Tushar

답변

1
당신은 모든 소수를 나열하려면이 옵션을 사용할 수

그보다 작은 1000

;WITH temp AS 
(
    SELECT 2 AS Value 
    UNION ALL 
    SELECT t.Value+1 AS VAlue 
    FROM temp t 
    WHERE t.Value < 1000 
) 
SELECT * 
FROM temp t 
WHERE NOT EXISTS 
      ( SELECT 1 FROM temp t2 
       WHERE t.Value % t2.Value = 0 
       AND t.Value != t2. Value 
      ) 
OPTION (MAXRECURSION 0) 

SQL

에서 데모 링크 :

이미 가정 : Rextester

0

대답은 간단하다 다음 표는 데이터가있는이 채워진 입니다.

CREATE TABLE dbo.PrimeNumber(Num INT NOT NULL PRIMARY KEY); 

만 간단한 SELECT해야합니다 :

SELECT * FROM dbo.PrimeNumber 
+0

힌트 (** [처음 1000 소수} **) : https://en.wikipedia.org/wiki/List_of_prime_numbers –

0
with prime 
as 
(
select 1 as 'start' 
union all 
select start+1 'start' 
from prime where start<100 
) 

select e as prime_value from 
(select a.start%b.start as w, a.start as e from prime A , Prime B 
where --a.start% b.start<>0 and 
b.start<a.start 
--and a.start between 1 and 100 
)A 
where w=0 
group by A.e 
having count(w) <=1 



BY Nagaraj M-BE 
+1

답변에 대한 설명을 추가해야합니다. 그렇지 않으면 향후 사용자를 이해하기 어려울 것입니다. – MKR