sqlserver語句怎么算質數?
根據質數的定義,對于一個自然數 N,我們可以檢查它是否能夠被任何從 2 到 N 的平方根加 1 的自然數整除。如果可以被整除,就不是質數;否則是質數。因此,可以使用以下查詢返回 100 以內的所有質數:
WITH RECURSIVE t(n) AS (
SELECT 2
UNION ALL
SELECT n+1 FROM t WHERE n<100
)
SELECT t1.n
FROM t t1
WHERE t1.n = 2
OR NOT EXISTS (
SELECT 1
FROM t t2
WHERE t2.n BETWEEN 2 AND sqrt(t1.n)+1
AND t1.n%t2.n = 0
);