Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
1
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

1736, 1152,

1772,

1800,

1812,

1820,

1848

1856,

1880,

1892,

1968,

1992,

2 0 0 0 ,

2016,

2024,

2060,

2076,

2132

2136,

2144,

2148,

2196,

2208,

2 2 2 0 ,

2240,

2268,

2288,

2292,

2324

2328,

2348,

2352,

2448,

2456,

2468,

2472,

2496,

2504,

2520,

2528

2532,

2580,

2612,

2616,

2636,

2648,

2676,

2736,

2744,

2780,

2808

2816,

2820,

2856,

2864,

2900,

2936,

2952,

2996,

3012,

3036,

3044

3048,

3068,

3108,

3132,

3168,

3216,

3248,

3276,

3284,

3288,

3336

3348,

3392,

3396,

3404,

3432,

3440,

3516,

3536,

3540,

3572,

3576

3588,

3608,

3620,

3636,

3644,

3680,

3692,

3728,

3764,

3780,

3788

3792,

3800,

3824,

3828,

3836,

3840,

3876,

3896,

3908,

3912,

3944

3948,

3972,

4004,

4008,

4032,

4056,

4068,

4080,

4088,

4116,

4160

4176,

4220,

4236,

4256,

4260,

4272,

4292,

4308,

4320,

4340,

4364

4400,

4452,

4488,

4500,

4544,

4572,

4596,

4608,

4628,

4652,

4656

4664,

4668,

4692,

4716,

4728,

4736,

4740,

4760,

4788,

4800,

4808

4844,

4848,

4868,

4896,

4908,

4952,

4968,

4980,

4988,

4992,

5012

5016,

5028,

5052,

5084,

5112,

5136,

5192,

5204,

5220,

5228,

5232

5264,

5268,

5276,

5292,

5300,

5328,

5336,

5352,

5388,

5400,

5408

5420,

5436,

5480,

5532,

5552,

5556,

5580,

5588,

5592,

5616,

5636

5640,

5660,

5672,

5676,

5688,

5708,

5804,

5808,

5816,

5832,

5880

5912,

5928,

5952,

5960,

5984,

5988,

6020,

6056,

6068,

6096,

6104

6128,

6164,

6216,

6236,

6248,

6252,

6276,

6300,

6356,

6372,

6392

6408,

6420,

6428,

6432,

6456,

6480,

6488,

6492,

6516,

6524,

6540

6560,

6576,

6596,

6608,

6612,

6668,

6708,

6720,

6752,

6756,

6828

6840,

6852,

6860,

6900,

6912,

6936,

6948,

6968,

6972,

7004,

7008

7040,

7064,

7076,

7100,

7112,

7116,

7128,

7152,

7176,

7212,

7220

7248,

7260,

7296,

7308,

7316,

7328,

7352,

7364,

7416,

7424,

7428

7440,

7476,

7496,

7500,

7508,

7512,

7560,

7572,

7580,

7596,

7604

7616,

7652,

7668,

7676,

7740,

7752,

7776,

7788,

7796,

7800,

7836

7872,

7892,

7904,

7928,

7956,

7968,

7976,

7992,

8000

 

 

 

 

 

 

Если показатель п равен одному из этих чисел, то наименьший делитель числа

3*2" +1, больший единицы, больше наибольшего простого модуля, использованного для составления таблицы. Вот примеры.

FactorInteger [3*2‘Л36+1] {{206158430209, 1} } FactorInteger [3*2л92+1]

{{1132314641089,1},{13119392730926401,1}} FactorInteger [3*2л96+1] {{392840481939253,1},{605040718740253,1}} Factorlnteger [3*2л108+1]

{{805213, 1}, {1781311693519, 1},{678750386188027, 1}}

Таким образом, нетривиальные делители чисел 3*2я+1, показатели которых вы­

 

держали отсев, довольно велики. (Ведь если число

3-2я+1 делится на простой мо­

 

дуль, использованный при

построении таблицы, то

показатель

не выдержал отсев.)

| Поэтому при применении

функции PrimeQ могут произойти

временные задержки.

[

Давайте сосчитаем количество таких показателей в пределах первых 300 000. Вот нуж-

!

ная нам программа.

 

 

 

 

prog4 :=

 

 

 

|

Block[ {nn=30000, Yes=0, No=0, j=4 },

 

 

 

While[j<=nn,

 

 

 

If[fx[j,t],Yes++,No++];

J+ -4J;

P rin t[ " Y e s * " ,Y e s ,N o = " ,N o ] )

Вот результаты счета.

Модулярная арифметика...

211

prog4//Timing

Yes14451 ; No60549 {1893.61 Second,Null)

Как видите, в пределах первых 300 000 придется проверить только 14451 число, кратное 4. Правда, отсев остальных чисел при этом у меня занял примерно 1893 се­ кунды, т.е. чуть больше получаса.

Хотя, как и в случае чисел 5*2я + 1, время на построение таблицы окупается, пове­ дение программы может показаться несколько неожиданным из-за временных затрат на построение таблицы и возможных временных затрат на вычисление функции PrimeQ в случае показателей, кратных 4. Действительно, сначала очень быстро печа­ таются первые значения л, а затем после п = 534 (на моем компьютере) происходит весьма существенная задержка. Она связана как с отсутствием искомых значений п вплоть до л = 2 208, так и с тем, что для части чисел (чуть более 11 %) приходится вы­ полнять полную проверку, которая теперь уже требует весьма ощутимых временных за­ трат, причем зачастую весьма непредсказуемых для показателей л, кратных 4. Затем вы­ дача замедляется, но поведение программы выглядит вполне стабильно, пока не будет

напечатан показатель л = 3 912.

После этого идет большой перерыв, вплоть до

 

л = 20 909. В приведенной ниже программе учтено все, о чем говорилось выше.

 

M3n[nJ :«

 

 

Block [{j-1, nnprime-25000,primen-Prime [nnprime],nn=Min [n,primen]},

j

While [MMkn[3,j]<= primen

&& j<=n, {If [MM3nPrime01[j],Print [j]],

j++)b*

 

I

j

t-Sort[DeleteCases[Array[f3,nnprime,3],Null]]; While[j<-nn.

If[fx[j,t]. If[MM3nPrime01[j],Print[j]]];

Эта программа существенно быстрее первоначальной, но если хотите по ней найти л —20 909, понадобится время и ангельское терпение.

Как видим, предварительная отбраковка и в данном случае значительно повышает эффективность программы. Впрочем, эффективность программы все еще сильно оп­ ределяется неотсеяннымн показателями л, кратными 4. Хотелось бы и для них найти

такое основание а, чтобы для установления простоты числа 3-2я+ 1 достаточно было

проверить выполнение сравнения

=-1 (mod *-2"+1). (Ранее для показателей л,

не кратных 4, мы полагали а = 5.)

 

Но все дело в том, что если показатель л делится на 4, то выбрать основание а не­ сколько сложнее. Если показатель л делится на 4, в качестве основания а можно взять

любой квадратичный невычет г по модулю 3*2"+1. Поэтому если п делится на 4,то сначала нужно найти (желательно небольшой) квадратичный невычет г по модулю

З'Г +1, а затем проверить, выполняется ли сравнение г2-"4 =-1 (mod *-2"+1).

Но как найти квадратичный вычет? Для этого можно использовать квадратичный за­

кон взаимности.

Е ст Р>\ и 0>1 — положительные нечетные взаимно простые числа, то

Прежде всего заметим, что если Р = 3 2*+1, то •£—i = 3-2*~* — число четное

2

прпиЖ

212

Глава 7

Я - 1 (? -1

Поэтому (-1) 2 2 = 1 и потому (*)- . Как видим, для поиска квадратичного

невычета г можно использовать функцию JacobiSymbol. В качестве г можно брать

небольшие нечетные числа и вычислять для них символ Якоби. (Для квадратичного невычета символ Якоби равен -1.) Как только мы найдем квадратичный невычет г,

можем проверить, выполняется ли сравнение r ~ 'k =-1 (mod к - 2я+1). Теперь легко написать функцию, вычисляющую квадратичный невычет.

ММЗпг [пп_]

Module[{г=5,

JS=JacobiSymbol[5,nn]},

While[JS!=-l && r<nn, r+=2;

If[GCD[r,nn]~l,

JS=JacobiSymbol[r,nn]]];r]

Чтобы запрограммировать критерий простоты, воспользуемся функцией PowerMod.

MM3nPrime [n_] : =

Module!{t = 3*2Лп+1),

If[Mod[n,4]!=0,

PowerMod[5, (t—1)/2,t]==t-l,

PowerMod[ММЗпг[t],(t-1)/2,t]==t-l]]

Теперь, наконец, можем написать окончательную версию программы.

M3nv01 [ п_] : =

Block[{j=l, nnprime=25000/primen=Prime[nnprime],nn=Min[n,primen]}, While [MMkn[3,j]<= primen &&• j<=n, {If[MM3nPrime[j], Print[j]],

j + + ) l ;

i f [j <n; t=Sort[DeleteCases[Array[f3,nnprime,3],Null]]; While[j<=nn,

If[fx[j,t], If[MM3nPrime[j],Print[j]]];

j++]]]

Запуская программу с параметром nnprime = 10000 и 25000, убеждаемся, что

при этих (и всех промежуточных) значениях генерация таблицы начинается после вы­ вода показателя 12, но до вывода показателя 18. Затем программа довольно быстро добирается до показателя 3912, после вывода которого “уходит в себя” аж до вывода показателя 20 909. (Заметьте, что, в отличие от предыдущей версии программы, пе­ рерыв между показателями 534 и 2 208 не слишком заметен — эту “достоприме­

чательность” вы запросто можете пропустить, если выйдете выпить чашечку кофе!)

Оказывается, что число

3- Т

+ 1 является простым при п = 1 ,

2 , 5, 6, 8,

12,

18,

30,

3

36,

41,

66,

189,

201,

209,

276,

353,

408,

438,

534,

2

208,

2 816,

168,

3

189,

3

912,

20

909,

34

350,

42

294,

42

665,

44

685,

48 150,

55 182,

59 973,

80

190,

157

169,

 

213

321. При всех других

п, не

превосходящих 300 000, число 3-2Я-М вляется составным.

Резюме

Мы рассмотрели определение частного (функция Quotient) и остатка (функция Mod), а также возведение в степень в модулярной арифметике (функция PowerMod) и

основу основ модулярной арифметики — китайскую теорему об остатках (функция ChineseRemainder). Кроме того, мы затронули вопрос об извлечении квадратных

Модулярная арифметика...

213

корней (функции SqrtMod, SqrtModList и JacobiSymbol). Но мы не ограничились корнями второй степени, а научились находить первообразные корни по модулю п (функция PrimitiveRoot), а также показатели (функция MultiplicativeOrder).

Как оказалось, некоторые из рассмотренных функций используют каноническое раз­ ложение (функцию Factorlnteger) и потому не могут справиться с вычислениями при очень больших аргументах. Однако на реальных примерах мы убедились в том, что эти функции очень полезны и вполне пригодны даже тогда, когда вычисления ве­ дутся с очень большими числами, например с числами, близкими к тысячным, деся­ титысячным, стотысячным и даже миллионным степеням двойки.

Задачи

Задача 7.1. Найти длину периодов дробей 1/19, 1/41, 1/(13*37), 1/(17*29) 1/(7*23*31), 1/(11*13*17), 1/(2*11*13), 1/(4*53*73).

Задача 7.2. Вычислить квадратные корни из 7 по модулю 17.

Задача 7.3. Решить квадратное уравнение 2дг2+5х+4 = 0 в поле вычетов по модулю 11.

Задача 7.4. Найти последние 50 цифр чисел 123402, З3’ , 44* 53’ (в случае, если1 число записывается менее чем 50 цифрами, вычислить число).

214

Глава 7

Глава 8

Числовые функции

Вэтой главе...

Функция Эйлера — EulerPhi

Функция Кармайкла Х(т) CarmichaelLambda

Функция Мебиуса \i(m) MoebiusMu

Функции, связанные с делителями, — Divisors и DivisorSigma

Резюме

Задачи

Функция .Дх) называется числовой, если она определена при всех натуральных значениях аргумента х.

А. А. Бухштаб. Теория чисел. Глава 33. Числовые функции. Определение 88

Многие рассмотренные ранее функции относятся к числовым, однако осталось не­ сколько важных числовых функций, заслуживающих отдельного внимания.

Функция Эйлера — EulerPhi

Если в полной системе вычетов по модулю п

оставить только вычеты, взаимно

I простые с модулем, получим приведенную систему

вычетов по модулю п. Мощность

приведенной системы вычетов по модулю п как множества обозначается <р(л), а функ­ ция <р:лЬ-»(р(я) называется функцией Эйлера. Найдем, для примера, приведенную систему вычетов по модулю 10.

Select[Range [10 ],GCD[#1,10]==1&]

( 1 , 3 , 7 , 9 }

Приведенная система вычетов по модулю 10, как видим, содержит 4 элемента. Значит, <р(10) = 4. В системе Mathematica функция Эйлера имеет имя EulerPhi.

Вот как можно вычислить ср(10).

EulerPhi [10]

4

Функция Эйлера имеет замечательные свойства и многочисленные применения. Например, она обладает следующим свойством:

Если а н т взаимно простые, то аф(ш) = l(modm).

Это утверждение называется теоремой Эйлера и очень часто малой теоремой Фер­ ма, который знал ее частный случай для простых модулей т. Эта теорема позволяет упростить вычисление остатков степеней чисел, взаимно простых с модулем. Рассмот­ рим пример.

Пример 8.1. “Бытие Бога”. Во второй половине XIX века некоторых авторов при­

влекали числа 22, З3’ , 44* Вот что пишет об этих числах известный немецкий попу­ ляризатор математики Вальтер Литцман в середине XX столетия:

В одной, изданной в 1874 году книге под названием “Бьггие Бога” (автор книги — Крениг)

рассматривается ряд чисел: 22 , З3 , 44 О последнем из этих чисел автор говорит: “Представьте себе отрезок такой длины, что световому лучу понадобился бы квинтилли­ он лет, чтобы пройти этот путь. Затем представьте себе шар с диаметром, равным этому отрезку, наполненный типографской краской. Всей этой краски не хватило бы, чтобы четко напечатать это число даже самыми мелкими цифрами, какие только существуют” X. Маурер исследовал эти числа с точки зрения теории чисел. Обозначив для простоты

число х г через 3Jt и введя затем общее обозначение яа = х( х) (где х и п — целые по­

ложительные числа), он показал, как можно найти последние цифры этих числовых ве­

ликанов. Так, например, 29 (т. е. 99) оканчивается на 89, 39 на 289,

49 — на 5289,

59 — на 45 289 и так далее, наконец, ,09 — на 9 392 745 289. Таким образом, последние

п цифр числа "9 повторяются во всех последующих числах

я+|9 , я+29 ,

и т. д. Ана­

логичными свойствами обладает и любой другой ряд = х,

, Зх ,

и так далее, где j

х — целое.

 

 

Что вы чувствуете по мере чтения этого отрывка? Я чувствую интерес и нарастаю­ щее недоверие. Я, например, в захвате от сравнения с шаром. Но я сомневаюсь, за­

канчивается ли 109 — на 9 392 745 289. И даже если последние п цифр числа ”9 по­

вторяются во всех последующих числах я+,9, я+29, и так далее, то я полагаю, что это как-то связано с девяткой и с тем, что эти числа записываются в десятичной сис­ теме счисления. Едва ли такими свойствами обладает и любой другой .ряд = х, 2д ,

V и так далее, где х — целое. И действительно, * 2 = 2 заканчивается на 2, а

2а* = 4 — на 4. Уже последняя цифра не повторяется во всех последующих числах

этого вида!

Как можно говорить о повторении последних п цифр числа? Так ч то

на­

счет таких свойств у любого другого ряда !х = а , 2а , Зх , и так далее, где а

це­

лое, то тут явное вранье. Вальтер Литцман, правда, говорит не о таких свойствах, а об аналогичных свойствах, но в чем отличие, не указывает явно. Такими свойствами не обладают, например, числа а = 3, 4, 8 и многие другие. Поэтому в чем именно состо­ ит аналогия, для меня пока не совсем понятно. И мне, естественно, хочется прояс­

нить этот вопрос и еще сильнее хочется вычислить последние п цифр числа "9.

Давайте начнем с вычисления последних п цифр числа я9 . Как это сделать с помо­ щью системы Mathematica?

Вот определение функции ях .

GodF[n_,x_J :=Module[{t = 1), Do[t = x^t, {i, n}]; t]

Функция яа возрастает очень быстро, значительно быстрее факториалов, поэтому, если нужно вычислить, скажем, последние к знаков какого-нибудь значения этой функции, необходимо использовать PowerMod.

GodFLastk[n_,x_, kj := If [n==l,Mod [x, 10лк],PowerMod [x,GodF[n-1, x],IC'k]]

216

Гnaea 8

Пусть к = 50. Тогда мы в мгновение ока сможем вычислить последние 50 знаков чисел ‘9, 29 и 39 . Но вот вычислить последние даже 10 знаков числа 49 так легко не удастся. Этот пример показывает, что в некоторых случаях применение функции powerMod может продвинуть вычисления всего лишь на один шаг!

Но функция Эйлера (и малая теорема Ферма) позволяет быстро вычислить по­ следние 50 знаков числа 49. Программа, конечно, будет другая.

PowerMod[9,PowerMod[9,9Л9,EulerPhi[10Л50]],10А50]

30363975097419408973491530163140828233401045865289

Можно ли быстро вычислить последние 50 знаков числа 59 по такой программе?

PowerMod[9,PowerMod[9,9Л9Л9,EulerPhi[10л50]],10л50]

Едва ли.

В чем же причина такого медленного продвижения, почему мы продвигаемся только на один шаг? Это происходит потому, что мы на самом деле устраняем быст­

рый рост функции пх =хс 'х) только на последнем шаге. Почему это происходит? Потому, что мы все время связаны с определением функции GodF. Именно она ис­ пользуется внутри функции GodFLastk. Даже фактически отказавшись от явного применения функции GodFLastk, мы все равно стремимся записать выражение для

пх= хс 'х) с некоторыми упрощениями для последнего или предпоследнего возведения

в степень. Конечно, это так естественно использовать выражение для ях = хг '*)! Однако нужно иметь в виду, что использование подобных “прямолинейных” опре­ делений часто весьма неэффективно. Если уж мы решили повышать эффективность, то делать это нужно на всю “глубину” выражения. Правда, это неизбежно приведет к появлению новых функций. Нам, например, придется отказаться от функции GodFLastk. Как ни удивительно, но вместо нее нам понадобится только одна функ­ ция, притом довольно простая. Давайте найдем ее определение. Обозначим через <7(л,

х, к) остаток от деления пх на к. (Таким образом, G(n, х, К Г ) — это последние т

цифр числа пх .) Тогда <7(1, х, к) = Mod[x,

к ]

. С другой стороны,

<Т(/2+1, х, к) = Mod [ х * ,

к]

= PowerMod [х, лх , к ].

| Предположим теперь, что х и к взаимно просты. Тогда по малой теореме Ферма это выражение можно записать так: PowerMod [х, G(/i, х, <р(&)), к ]. Так что в этом случае С(л+1, х, к) = PowerMod[х, <7(и, х, <р(&)), к]. Этр и есть нужное нам рекуррентное соотношение. С учетом этого соотношения определение нужной нам функции выглядит так.

GodFk[n_,x_, k j :=

If[n==l,Mod[х , k],

If[GCD[x,k]==1,PowerMod[x,GodFk[n-1,x, EulerPhi[k]],k],

PowerMod[x,GodF[n-l,x],k]]

];

Теперь легко написать программу.

Do[Print ["n=", n, ":”,GodFk [n, x=9,10Ak] ],{n, k=50} ]

Вот полученные результаты (последние п цифр я выделил полужирным и кое-где Добавил для наглядности пробелы).

Числовые функции

217

n*

1

э

пв

2

387420489

3

74036682906190174923494324178799359681422627177289

П=

4

30363975097419408973491530163140828233401045865289

n*

5

67601769201280803321567960562922025410124931945289

П*

6

66988559077764735391593750574508335101770064745289

П*

7

3225702039861853103627899869690297466648912745289

n=

8

59236124206842976969480888865754664771680592745289

П*

9

24598085360063561211387321046834512555309392745289

П*

10

74385615209966118260643333668398710025517392745289

n -

U

76243360385648423208250882460220962794797392745289

n*

12

87216251448058746388660902493352723639597392745289

n*

13

56125899838074819319718135540327220407597392745i289

14

15721700104894507499855491068835759287597392745289

15

35685823571973539888573208106402940087597392745289

16

21046168741117425730114673405625468087597392745289

n® 17

86294587738270643045877500288205948087597392745289

18

85938146273976665955673369209242748087597392745289

ft® 19

29939232856561419744939548600730748087597392745289

n*

20

84355081639217022496061810534810748087597392745289

ft® 21

4062958342717589169869239347610748087597392745289

n*

22

53597576335863867827050066995610748087597392745289

23

63401719997507892663236506675610748087597392745289

a® 24

35562795064727795859981415475610748087597392745289

O* 25

89707387667662486473016423475610748087597392745289

ft* 26

7165773736836118217753703475610748087597392745289

ft* 27

62143159496207876149478503475610748087597392745289

ft* 28

67085999264966982947046503475610748087597392745289

ft* 29

43881460342292173213926503475610748087597392745289

ft*

30

62083918856212192874726503475610748087597392745289

ft*

31

42770308364235972202726503475610748087597392745289

ft*

32

93671147998913240682726503475610748087597392745289

ft*

33

49442475128680357482726503475610748087597392745289

и п и ш м и и н

349763266066804645482726503475610748087597392745289

3523920310583586725482726503475610748087597392745289

3684050795204079525482726503475610748087597392745289

3727542025260527525482726503475610748087597392745289

3853693377908207525482726503475610748087597392745289

3?, 86806252097007525482726503475610748087597392745289

4092437731905007525482726503475610748087597392745289

4199095237105007525482726503475610748087597392745289

424125841005007525402726503475610748087597392745289

4367704209005007525402726503475610748087597392745289

4416499009905007525402726503475610748087597392745289

4576639009005007525402726503475610748087597392745289

4692767809985007525482726503475610748007597392745289

4749247009005007525402726503475610748087597392745289

4846047000005007525402726503475610748087597392745289

4934047009905007525402726503475610748087597392745289 Ш 14047009905007525402726503475610748087597392745289

ДшшЙчч;TKTOKjpb ш ш т ййшшпярвшл®мдчгасжмма f»/»» члсш 3. Bor так эаяпияст*

«й mpwpwwa.

Ш)Ц^ariwittt[",i№f*="’„un„ "^"'„©адакКв^х-З,, l®*kj I» 4m»fc=5®B 1

Ш

ГтаваВ

Вот что получится (кое-где для наглядности добавлены пробелы, а повторяющиеся цифры выделены полужирным).

П=

1

3

п=

2

27

п=

з

7625597484987

п=

4

77570718344711077047886315075206738945776100739387

п=

5

55854572752741256595935403868315006939489660355387

п=

б

90780468378838490089689122942913333445425126595387

I F

7

57363335931987121606290933357170663594163200195387

п=

8

8191858424962438172573992874654018371285504195387

IF

9

95577482876830468269943399230195119099288064195387

п= Ю

8435006830504599886102605386254100942846464195387

IF

И

50618965127937823949288974261382652289022464195387

IF

12

33161552470073414076445536414295455473662464195387

п=

13

57997025360625683240421247657832362123262464195387

IF

14

30095007241855857717245212823399805067262464195387

IF

15

71995337059215641109287005843553497227262464195387

п=

16

44157920142526662501526665014305599627262464195387

п=

17

32584118105183489570768760756527935627262464195387

IF

18

17837341235047369778848713997574975627262464195387

п=

19

91391567977352645535199176332960575627262464195387

IF

20

84384009257019351608787441718944575627262464195387

IF

21

51158784454967340230287016236704575627262464195387

IF

22

88201871244260524527551915923104575627262464195387

п=

23

70480684875148289836047280019104575627262464195387

п=

24

47386861942350455540475373459104575627262464195387

г.=

25

70502972735760073957605255059104575627262464195387

п=

26

14923290048832308059340679059104575627262464195387

j п=

27

28644084365777774239580039059104575627262464195387

[ п=

28

73806600241641792292290439059104575627262464195387

п= 29

95394263865045138359746439059104575627262464195387

п=

30

14105548786667564123586439059104575627262464195387

п=

31

29352587436074255861186439059104575627262464195387

п=

32

41141426257858971125186439059104575627262464195387

п=

33

23518454550261188085186439059104575627262464195387

IF

34

16644673180062762485186439059104575627262464195387

п= 35

63607753705051178485186439059104575627262464195387

г.=

36

24222573550949418485186439059104575627262464195387

п=

37

34723415029503018485186439059104575627262464195387

п= 38

99398465419007018485186439059104575627262464195387

IF

39

26617834829567018485186439059104575627262464195387

п= 40

27607235507967018485186439059104575627262464195387

п= 41

74502978483967018485186439059104575627262464195387

п= 42

23617715123967018485186439059104575627262464195387

п= 43

97581644723967018485186439059104575627262464195387

я= 44

34643788723967018485186439059104575627262464195387

п= 45

59023948723967018485186439059104575627262464195387

п= 46

67446348723967018485186439059104575627262464195387

г.=

47

74582348723967018485186439059104575627262464195387

п= 48

93622348723967018485186439059104575627262464195387

п= 49

59222348723967018485186439059104575627262464195387

п= 50

43222348723967018485186439059104575627262464195387

Числовые функции

219

Теперь понятно, что имел в виду Вальтер Литцман под аналогичными свойствами. Начиная с некоторого п = п0 последняя цифра числа не изменяется, причем начиная

е п = л0 + 1 повторяются уже две цифры, с я = л1)+ 2 - три цифры, с п — п()+ к к

цифр и т. д. (Через н()(х) удобно обозначать наименьшее п0 с таким свойством.) Для

некоторых л*, например для х = 9, п0(х) = 1, а для некоторых х л5(х)>1. Если //„(*)>!,

то нельзя утверждать, что последние п цифр числа пх повторяются во всех последую­

щих числах "+,.v, л+2д:, и т.д. Если /;0(х)>1, то повторение последних п цифр нач­

нется не с числа пх , а несколько позднее! Да уж, разбираться в популярных книжках иногда приходится с системой Mathematical

Пример 8.2. График функции Эйлера.

Давайте теперь построим график функции Эйлера. Сначала используем функции Table и EulerPhi для построения таблицы tl (точнее, списка) значений функции Эйлера.

tlTable[EulerPhi[k],{k,1,п=10л3}];

Теперь можем использовать функцию ListPlot для построения графика.

ListPlot[tl,PlotRange->All]

100C

800

600

400

200^

200 400 600 800 1000

А вот график для n = 100000.

20000 40000 60000 80000 100000

220

Г л ава8