Улучшенное разложение на простые множители — FactorlntegerECM
Алгоритм разложения чисел на простые множители, реализованный в ядре Mathematiica 3, способен за 3 часа (на рабочих станциях) разлагать числа, имеющие до 18 цифр. Улучшенный алгоритм в подпакете FactorlntegerECM позволяет увеличить максимальное число цифр до 40. Реализуется разложение следующей функцией:
FactorIntegerECM[n] — возвращает один из делителей числа п. Возможны опции FactorSize->q, CurveNumber->b и CurveCountLimit->c.
Примеры применения этой функции:
<<NumberTheory`FactorlntegerECM`
FactorIntegerECM[123456789]
34227
3*5*7*9
945
FactorlntegerECM[945]
189
Функции теории чисел — NumberTheory Functions
В подпакете NumberTheoryFunctions имеется ряд функций, относящихся к теории чисел:
SquareFreeQ[n] — дает True, если п не имеет квадратичного фактора, и False в ином случае;
NextPrime [n] — дает наименьшее простое число, превосходящее п;
ChineseRemainderTheorem[listl, Iist2.] — дает наименьшее неотрицательное целое г, такое что Mod [r, Iist2] ==list1;
SqrtMod [d, n] — дает квадратный корень из (d mod п) для нечетного n;
PrimitiveRoot [n] — дает примитивный корень п;
QuadraticRepresentation [d, n] — дает решение {х,у} для уравнения х
2
+ (d у)
2
==п для нечетного п и положительного d;
ClassList[d] — дает список неэквивалентных квадратичных форм дискриминанта d для отрицательного и свободного от квадратов целого d вида 4n+1;
ClassNumber [d] — дает список неэквивалентных квадратичных форм дискриминанта d;
SumOf Squares [d, n] — дает число представлений целого числа п в виде суммы d квадратов;
SumOf SquaresRepresentations [d, n] — дает список представлений целого числа п в виде суммы d квадратов, игнорируя порядок и знаки.