PrimeQ
范例
打开所有单元 关闭所有单元范围 (4)
选项 (1)
应用 (22)
基本应用 (5)
Multicolumn[If[PrimeQ[#], Style[#, Red, Bold], #]& /@ Range[100], 10, ...]Prime[5]RandomPrime[1000, 10]AllTrue[%, PrimeQ]ArrayPlot[Boole[Table[PrimeQ[a + b I, GaussianIntegers -> True],
{a, 100}, {b, 100}]]]Select[Range[100], PrimePowerQ[#] && !PrimeQ[#]&]特殊序列 (11)
g = Flatten[Table[a + I b, {a, -40, 40}, {b, -40, 40}]];
p = Select[g, PrimeQ[#, GaussianIntegers -> True]&];ComplexListPlot[p, PlotRange -> All, PlotMarkers -> {{●, 1}}, Axes -> False, AspectRatio -> 1]爱森斯坦整数是形式为
的复数,其中 a 和 b 是整数,而 ω 是
的三次单位根:
ω = Exp[2π I / 3];e = Select[Flatten[Table[a + b ω, {a, -30, 30}, {b, -30, 30}], 1], Abs[#] < 20&];primeQ[a_] := Or[PrimeQ[AlgebraicNumberNorm[a]], (PrimeQ[Abs[a]] && Mod[Abs[a], 3] == 2)]primeQ[ω]primeQ[5]primes = Select[e, primeQ];ComplexListPlot[primes, PlotRange -> All, PlotMarkers -> Automatic, Axes -> False, AspectRatio -> 1]PrimeQ[Table[x ^ 2 + x + 41, {x, 0, 39}]]PrimeQ[2 ^ 2 ^ 3 + 1]PrimeQ[2 ^ 2 ^ 7 + 1]识别卡迈克尔数,即对于所有与 n 互素的整数 b,满足
mod
的合成数 n:
cnumberQ[n_] := !PrimeQ[n] && Mod[n, CarmichaelLambda[n]] == 1;cnumberQ[1729]cnumberQ[1310]wprimeQ[n_] := PrimeQ[n] && (Mod[2 ^ (n - 1) - 1, n ^ 2] == 0);wprimeQ[1093]Select[Range[10 ^ 4], wprimeQ]gaussianMersennePrimeQ[n_] := PrimeQ[(1 + I) ^ n - 1, GaussianIntegers -> True];Select[Range[1000], gaussianMersennePrimeQ]hilbertQ[n_] := Divisible[n - 1, 4];
h = Select[Range[1000], hilbertQ];{a, b} = RandomChoice[h, 2];
hilbertQ[a b]识别希尔伯特素数,即
中除了 1 和自身以外没有其它因数的素数:
hprimeQ[n_] := If[Length[Select[h, Divisible[n, #] && hilbertQ[n] && hilbertQ[#]&]] == 2, True, False];Select[h, hprimeQ, 10]AllTrue[PrimeQ[MersennePrimeExponent[Range[47]]], #&]Cases[Range[1000], n_ /; PrimeQ[n] && (NextPrime[n] == n + 2) :> {n, n + 2}]FindInstance[(2 ^ q - 1) == p && 0 < q < p < 100, {q, p}, Primes]MersennePrimeExponentQ[5]数论 (6)
Select[Prime[Range[20]], PrimeQ[#, GaussianIntegers -> True]&]Mod[%, 4]SquaresR[2, %%]Select[Range[100], CompositeQ[#, GaussianIntegers -> True] &&
PrimeQ[#] &]Mod[Drop[%, 1], 4]SquaresR[2, Drop[%%, 1]]ListLinePlot[Table[Prime[n + 1] - Prime[n], {n, 1, 100}]]Total[1. / Select[Range[10 ^ 5], PrimePowerQ[#] && !PrimeQ[#]&]]data = Select[Range[100], PrimeQ];𝒟 = EmpiricalDistribution[data];DiscretePlot[Evaluate[CDF[𝒟, x]], {x, 1, 100}, ExtentSize -> Right]data = {Re[#], Im[#]}& /@ Select[Flatten[Table[a + b I, {a, 500}, {b, 500}]], PrimeQ];𝒟 = EmpiricalDistribution[data];DiscretePlot3D[Evaluate[CDF[𝒟, {x, y}]], {x, 1, 5}, {y, 1, 5}, ExtentSize -> Right]属性和关系 (22)
Primes 表示所有素数的域:
Element[2 ^ 107 - 1, Primes]Prime 给出第 ![]()
个素数:
Table[Prime[n], {n, 10}]PrimeQ[%]RandomPrime 生成随机素数:
RandomPrime[100, 10]PrimeQ[%]PrimePowerQ 对所有素数给出 True:
PrimeQ[37]PrimePowerQ[37]PrimeQ[29]Mod[29, 4]PrimePowerQ[29, GaussianIntegers -> True]PrimePowerQ[625]Select[Divisors[625], PrimeQ]PrimeQ[17]Divisors[17]PrimeQ[2]CompositeQ[12]PrimeQ[12]对于所有素数,CompositeQ 返回 False:
PrimeQ[23]CompositeQ[23]每个大于1的整数或者本身就是素数,或者可以表示为素数的乘积:
PrimeQ[17]FactorInteger[17]PrimeQ[24]FactorInteger[24]两个素数的 GCD 为 1; 因此,两个素数是相对素数:
PrimeQ[{7, 11}]GCD[7, 11]CoprimeQ[7, 11]素数的 LCM 是它们的乘积:
PrimeQ[{5, 7, 2}]LCM[5, 7, 2] == 5 7 2PrimeQ[19]DivisorSum[19, #&, PrimeQ]MersennePrimeExponent[4]PrimeQ[2 ^ % - 1]PrimeQ[Table[MersennePrimeExponent[n], {n, 10}]]使用 FactorInteger 求一个数的所有素因数:
Part[FactorInteger[2434500], All, 1]Select[Divisors[2434500], PrimeQ]对于所有素数,PrimeOmega 返回 1:
PrimeOmega[29]PrimeQ[29]PrimePi 给出素数的个数:
PrimePi[1000]Count[Table[PrimeQ[n], {n, 1, 1000}], True]PrimeNu 计算一个数的素因数的个数:
PrimeNu[65]Select[Divisors[65], PrimeQ]用 Simplify 化简含有素数的表达式:
Simplify[Mod[a ^ p, p] == Mod[a, p], a∈Integers && p∈Primes]在 Primes 上求解:
Solve[(p - 1) < p ^ 2 + p + 1 < 100, p, Primes]互动范例 (1)
巧妙范例 (3)
可视化
能被素数整除的情形. 每行点对应于
的因数,它们沿水平轴标记:
NumberLinePlot[Table[Select[Range[Prime[n]], (Divisible[Prime[n] - 1, #] && # > 1 && PrimeQ[#])&], {n, 1, 40}], PlotRange -> All]ArrayMesh[Boole[Table[PrimeQ[a ^ 2 + b ^ 2 + c ^ 2], {a, 10}, {b, 10}, {c, 10}]]]ulam[n_] := Partition[Permute[Range[n ^ 2], Accumulate[Take[Flatten[{{n ^ 2 + 1} / 2, Table
[(-1) ^ j i, {j, n}, {i, {-1, n}}, {j}]}], n ^ 2]]], n];ArrayPlot[ulam[101] Boole[PrimeQ[ulam[101]]], ColorFunction -> "Rainbow", ColorRules -> {0 -> White}]技术笔记
-
▪
- 限制模式 ▪
- 数的类型 ▪
- 整数和数论中的函数 ▪
- 关于内部实现的一些注释: 数值及相关函数
历史
1988年引入 (1.0) | 在以下年份被更新:1999 (4.0) ▪ 2003 (5.0)
文本
Wolfram Research (1988),PrimeQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PrimeQ.html (更新于 2003 年).
CMS
Wolfram 语言. 1988. "PrimeQ." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2003. https://reference.wolfram.com/language/ref/PrimeQ.html.
APA
Wolfram 语言. (1988). PrimeQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/PrimeQ.html 年
BibTeX
@misc{reference.wolfram_2026_primeq, author="Wolfram Research", title="{PrimeQ}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/PrimeQ.html}", note=[Accessed: 31-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_primeq, organization={Wolfram Research}, title={PrimeQ}, year={2003}, url={https://reference.wolfram.com/language/ref/PrimeQ.html}, note=[Accessed: 31-October-2026]}