Работа с простыми числами (PrimeQ). Вычисление примитивных элементов (Primitive Element).
В подпакете PrimeQ в дополнение к функции ядра PrimeQ [n] имеется ряд функций для работы с простыми числами:
- ProvablePrimeQ [n] – возвращает True, если п проверено на простоту, и False в ином случае;
- PrimeQCertif icate [n] – возвращает сертификат о том, что n– простое или композитное число;
- ProvablePrimeQ [n, Certif icate › True] – возвращает сертификат, который может использоваться для проверки чисел на простоту;
- PrimeQCertif icateCheck [check, n] – проверяет, удостоверяет ли сертификат check простоту или композитность n.
Следующие примеры показывают работу с простыми числами:
<
<
NumberTheory`PrimeQ`
PrimeQ[
127
]
True
ProvablePrimeQ[
127
]
True
PrimeQCertificate[
127
]
{
127
,
3
, {
2
, {
3
,
2
, {
2
}.}, {
7
,
3
, {
2
, {
3
,
2
, {
2
}}}}}}
ProvablePrimeQ[
127
, Certificate
>
True
]
(
True
, {
127
,
3
, {
2
, {
3
,
2
, {
2
}}, {
7
,
3
, {
2
, {
3
,
2
, {
2
}}}}}}}
PrimeQCertificate[
3511
, SmallPrime
>
1000
]
{{CertificatePrime
>
3511
,
CertificatePoint
>
PointEC[
2
,
2467
,
1447
,
2135
,
3511
], Certif icateK
>
32
, Certif icateM
>
3424
,
CertificateNextPrime
-
*
107
, CertificateDiscriminant
>
-
7
},
107
,
2
, {
2
, {
53
,
2
, {
2
, {
13
,
2
, {
2
, {
3
,
2
, {
2
}}}}}}}}
Вычисление примитивных элементов (Primitive Element)
Подпакет PrimitiveElement содержит всего одну функцию для вычисления примитивных элементов множественного алгебраического выражения:
- PrimitiveElement [z, {а1"а2,…} ] – возвращает список {b, { f1, f2,…}}, где b – примитивный элемент расширения рациональных алгебраических чисел a1, а2,… и f1, f 2,… – полином переменной z, представляющей a1, a2,… как термы примитивного элемента.
Ее действие видно из следующего примера:
<
<
NumberTheory`PrimitiveElement`
PrimitiveElement[z, {Sqrt[
2
], Sqrt[
3
]}]
RootReduce[
%
[[
2
]]
/
.z
>
%
[[
1
]]]