(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.0' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 78825, 1954]*) (*NotebookOutlinePosition[ 79461, 1976]*) (* CellTagsIndexPosition[ 79417, 1972]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["The Euler \[Phi] function", "Subtitle"], Cell["\<\ I. Cnop Vrije Universiteit Brussel icnop@vub.ac.be\ \>", "Subsubtitle"], Cell[CellGroupData[{ Cell["Introduction", "Section"], Cell[TextData[{ "The Euler Phi function counts for each natural number n the number of \ natural numbers relatively prime and smaller than n . \nThis important \ function from number theory is included in the standard ", StyleBox["Mathematica", FontSlant->"Italic"], " commands." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(EulerPhi[20]\)], "Input"], Cell[BoxData[ \(8\)], "Output"] }, Open ]], Cell[TextData[{ "In order to get more insight we want to program our own. \nIt shows \ programming style in ", StyleBox["Mathematica", FontSlant->"Italic"], " and therefore is a useful exercise. Programming will involve lists such \ as" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Range[10]\)], "Input"], Cell[BoxData[ \({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\)], "Output"] }, Open ]], Cell["and operations on them: making their product", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(\(\(\ \)\(Times @@ %\)\)\)], "Input"], Cell[BoxData[ \(3628800\)], "Output"] }, Open ]], Cell["or generating a set of special fractions", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Map[\((1 - 1/#)\) &, Range[10]]\)], "Input"], Cell[BoxData[ \({0, 1\/2, 2\/3, 3\/4, 4\/5, 5\/6, 6\/7, 7\/8, 8\/9, 9\/10}\)], "Output"] }, Open ]], Cell["\<\ As a bonus we will be able to obtain a symbolic result by our \ programming.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Writing our own program", "Section"], Cell[CellGroupData[{ Cell["Start by reasoning from an example", "Subsection"], Cell[CellGroupData[{ Cell[BoxData[ \(n = 30\)], "Input"], Cell[BoxData[ \(30\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FactorInteger[n]\)], "Input"], Cell[BoxData[ \({{2, 1}, {3, 1}, {5, 1}}\)], "Output"] }, Open ]], Cell["\<\ Being relatively prime only depends on (not) having a prime factor \ in common with n . \ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(primes[n_] := First[Transpose[FactorInteger[n]]]\)], "Input"], Cell[BoxData[ \(General::"spell1" \(\(:\)\(\ \)\) "Possible spelling error: new symbol name \"\!\(primes\)\" is similar \ to existing symbol \"\!\(Primes\)\"."\)], "Message"] }, Open ]], Cell[BoxData[ \(relPrime[k_] := \ GCD[k, n] == 1\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(Select[Range[n], relPrime]\)], "Input"], Cell[BoxData[ \({1, 7, 11, 13, 17, 19, 23, 29}\)], "Output"] }, Open ]], Cell[BoxData[ \(commonPrime[k_] := \ GCD[k, n] != 1\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(Select[Range[n], commonPrime]\)], "Input"], Cell[BoxData[ \({2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30}\)], "Output"] }, Open ]], Cell[TextData[{ "We write out all prime factor of n and for each prime factor p , we \ delete all multiples j p of this prime factor. \nThe amount of numbers we \ delete for p is ", Cell[BoxData[ \(n\/p\)]], " .\nTaking into account doubles (multiples of two different p ), triples \ (multiples of three different p ), .... , we obtain by the \ inclusion-exclusion principle a formula where the ratio of not deleted \ numbers for all p is the product of all (1 - ", Cell[BoxData[ \(1\/p\)]], "). \n[If you do not know this inclusion-exclusion principle, do this by \ reasoning on sets of multiples obtained by] " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Table[\(primes[n]\)[\([j]\)]\ Range[n/\(primes[n]\)[\([j]\)]], {j, Length[primes[n]]}] // TableForm\)], "Input"], Cell[BoxData[ InterpretationBox[GridBox[{ {"2", "4", "6", "8", "10", "12", "14", "16", "18", "20", "22", "24", "26", "28", "30"}, {"3", "6", "9", "12", "15", "18", "21", "24", "27", "30", "\<\"\"\>", "\<\"\"\>", "\<\"\"\>", "\<\"\"\>", \ "\<\"\"\>"}, {"5", "10", "15", "20", "25", "30", "\<\"\"\>", "\<\"\"\>", "\<\"\"\>", "\<\"\"\>", "\<\"\"\>", \ "\<\"\"\>", "\<\"\"\>", "\<\"\"\>", "\<\"\"\>"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], TableForm[ {{2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30}, { 3, 6, 9, 12, 15, 18, 21, 24, 27, 30}, {5, 10, 15, 20, 25, 30}}]]], "Output"] }, Open ]], Cell["So finally:", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FactorInteger[n]\)], "Input"], Cell[BoxData[ \({{2, 1}, {3, 1}, {5, 1}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(First[Transpose[%]]\)], "Input"], Cell[BoxData[ \({2, 3, 5}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\(\((1 - 1/#)\) &\)[%]\)], "Input"], Cell[BoxData[ \({1\/2, 2\/3, 4\/5}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(n\ Times @@ %\)], "Input"], Cell[BoxData[ \(8\)], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Collect these last lines into a program", "Subsection"], Cell[BoxData[{ \(\(primes[n_] := First[Transpose[FactorInteger[n]]];\)\), "\[IndentingNewLine]", \(\(mult[n_] := Map[\((1 - 1/#)\) &, primes[n]];\)\), "\[IndentingNewLine]", \(ourPhi[n_] := n\ Times @@ mult[n]\)}], "Input"], Cell[CellGroupData[{ Cell["Testing", "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(n = 96\)], "Input"], Cell[BoxData[ \(96\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(primes[n]\)], "Input"], Cell[BoxData[ \({2, 3}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(mult[n]\)], "Input"], Cell[BoxData[ \({1\/2, 2\/3}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ourPhi[n]\)], "Input"], Cell[BoxData[ \(32\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(EulerPhi[n]\)], "Input"], Cell[BoxData[ \(32\)], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["The case n is prime", "Subsection"], Cell["\<\ Question: what is the \[Phi](n) for a prime number n?\ \>", "Text", FontWeight->"Bold"] }, Closed]], Cell[CellGroupData[{ Cell["The case n is a product of different primes", "Subsection"], Cell["First answer the following questions:", "Text"], Cell["\<\ Question: what is the \[Phi](n) for n = p q (both prime \ numbers)?\ \>", "Text", FontWeight->"Bold"], Cell["\<\ Question: what is the \[Phi](n) for n = p q r (all prime \ numbers)?\ \>", "Text", FontWeight->"Bold"], Cell[CellGroupData[{ Cell["This can be handled symbolically too:", "Subsubsection"], Cell["\<\ If we tell the computer what are the different primes involved - \ how could it know the factorisation of an unspecified number\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(primes = {p, q, r}\)], "Input"], Cell[BoxData[ \({p, q, r}\)], "Output"] }, Open ]], Cell["and tell it n is their product", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(n = \ Times @@ %\)], "Input"], Cell[BoxData[ \(p\ q\ r\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Map[\((1 - 1/#)\) &, primes]\)], "Input"], Cell[BoxData[ \({1 - 1\/p, 1 - 1\/q, 1 - 1\/r}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(n\ Times @@ %\)], "Input"], Cell[BoxData[ \(\((1 - 1\/p)\)\ p\ \((1 - 1\/q)\)\ q\ \((1 - 1\/r)\)\ r\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Expand[Together[%]]\)], "Input"], Cell[BoxData[ \(\(-1\) + p + q - p\ q + r - p\ r - q\ r + p\ q\ r\)], "Output"] }, Open ]], Cell["A correct answer!", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Questions", "Subsubsection", CellDingbat->None], Cell[TextData[{ "Try this for two and four primes as well.\nNext try it for n =", " ", Cell[BoxData[ \(p\^3\ q\^2\ r\ \ and\ check\ your\ result\ for\ \ \ n\ = \ \ 360\)], FontFamily->"Times"], "." }], "Text"] }, Closed]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Other issues", "Section"], Cell[CellGroupData[{ Cell["Plotting \[Phi]", "Subsection"], Cell["\<\ Plotting \[Phi] for related numbers also yields some unexpected \ results. Perform\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(ListPlot[Table[ourPhi[k], {k, 2, 120}]]\)], "Input"], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.0080032 0.0147151 0.00494625 [ [.18387 .00222 -6 -9 ] [.18387 .00222 6 0 ] [.34394 .00222 -6 -9 ] [.34394 .00222 6 0 ] [.504 .00222 -6 -9 ] [.504 .00222 6 0 ] [.66407 .00222 -6 -9 ] [.66407 .00222 6 0 ] [.82413 .00222 -9 -9 ] [.82413 .00222 9 0 ] [.98419 .00222 -9 -9 ] [.98419 .00222 9 0 ] [.01131 .11364 -12 -4.5 ] [.01131 .11364 0 4.5 ] [.01131 .21257 -12 -4.5 ] [.01131 .21257 0 4.5 ] [.01131 .31149 -12 -4.5 ] [.01131 .31149 0 4.5 ] [.01131 .41042 -12 -4.5 ] [.01131 .41042 0 4.5 ] [.01131 .50934 -18 -4.5 ] [.01131 .50934 0 4.5 ] [.01131 .60827 -18 -4.5 ] [.01131 .60827 0 4.5 ] [ 0 0 0 0 ] [ 1 .61803 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 g .25 Mabswid [ ] 0 setdash .18387 .01472 m .18387 .02097 L s [(20)] .18387 .00222 0 1 Mshowa .34394 .01472 m .34394 .02097 L s [(40)] .34394 .00222 0 1 Mshowa .504 .01472 m .504 .02097 L s [(60)] .504 .00222 0 1 Mshowa .66407 .01472 m .66407 .02097 L s [(80)] .66407 .00222 0 1 Mshowa .82413 .01472 m .82413 .02097 L s [(100)] .82413 .00222 0 1 Mshowa .98419 .01472 m .98419 .02097 L s [(120)] .98419 .00222 0 1 Mshowa .125 Mabswid .06383 .01472 m .06383 .01847 L s .10384 .01472 m .10384 .01847 L s .14386 .01472 m .14386 .01847 L s .22389 .01472 m .22389 .01847 L s .26391 .01472 m .26391 .01847 L s .30392 .01472 m .30392 .01847 L s .38395 .01472 m .38395 .01847 L s .42397 .01472 m .42397 .01847 L s .46399 .01472 m .46399 .01847 L s .54402 .01472 m .54402 .01847 L s .58403 .01472 m .58403 .01847 L s .62405 .01472 m .62405 .01847 L s .70408 .01472 m .70408 .01847 L s .7441 .01472 m .7441 .01847 L s .78411 .01472 m .78411 .01847 L s .86415 .01472 m .86415 .01847 L s .90416 .01472 m .90416 .01847 L s .94418 .01472 m .94418 .01847 L s .25 Mabswid 0 .01472 m 1 .01472 L s .02381 .11364 m .03006 .11364 L s [(20)] .01131 .11364 1 0 Mshowa .02381 .21257 m .03006 .21257 L s [(40)] .01131 .21257 1 0 Mshowa .02381 .31149 m .03006 .31149 L s [(60)] .01131 .31149 1 0 Mshowa .02381 .41042 m .03006 .41042 L s [(80)] .01131 .41042 1 0 Mshowa .02381 .50934 m .03006 .50934 L s [(100)] .01131 .50934 1 0 Mshowa .02381 .60827 m .03006 .60827 L s [(120)] .01131 .60827 1 0 Mshowa .125 Mabswid .02381 .03945 m .02756 .03945 L s .02381 .06418 m .02756 .06418 L s .02381 .08891 m .02756 .08891 L s .02381 .13837 m .02756 .13837 L s .02381 .1631 m .02756 .1631 L s .02381 .18783 m .02756 .18783 L s .02381 .2373 m .02756 .2373 L s .02381 .26203 m .02756 .26203 L s .02381 .28676 m .02756 .28676 L s .02381 .33622 m .02756 .33622 L s .02381 .36095 m .02756 .36095 L s .02381 .38568 m .02756 .38568 L s .02381 .43515 m .02756 .43515 L s .02381 .45988 m .02756 .45988 L s .02381 .48461 m .02756 .48461 L s .02381 .53407 m .02756 .53407 L s .02381 .5588 m .02756 .5588 L s .02381 .58353 m .02756 .58353 L s .25 Mabswid .02381 0 m .02381 .61803 L s 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .008 w .03181 .01966 Mdot .03982 .02461 Mdot .04782 .02955 Mdot .05582 .0345 Mdot .06383 .03945 Mdot .07183 .04439 Mdot .07983 .04934 Mdot .08784 .05429 Mdot .09584 .05923 Mdot .10384 .06418 Mdot .11184 .06912 Mdot .11985 .07407 Mdot .12785 .07902 Mdot .13585 .08396 Mdot .14386 .08891 Mdot .15186 .09386 Mdot .15986 .0988 Mdot .16787 .10375 Mdot .17587 .10869 Mdot .18387 .11364 Mdot .19188 .11859 Mdot .19988 .12353 Mdot .20788 .12848 Mdot .21589 .13343 Mdot .22389 .13837 Mdot .23189 .14332 Mdot .2399 .14826 Mdot .2479 .15321 Mdot .2559 .15816 Mdot .26391 .1631 Mdot .27191 .16805 Mdot .27991 .173 Mdot .28792 .17794 Mdot .29592 .18289 Mdot .30392 .18783 Mdot .31192 .19278 Mdot .31993 .19773 Mdot .32793 .20267 Mdot .33593 .20762 Mdot .34394 .21257 Mdot .35194 .21751 Mdot .35994 .22246 Mdot .36795 .2274 Mdot .37595 .23235 Mdot .38395 .2373 Mdot .39196 .24224 Mdot .39996 .24719 Mdot .40796 .25214 Mdot .41597 .25708 Mdot .42397 .26203 Mdot .43197 .26697 Mdot .43998 .27192 Mdot .44798 .27687 Mdot .45598 .28181 Mdot .46399 .28676 Mdot .47199 .29171 Mdot .47999 .29665 Mdot .488 .3016 Mdot .496 .30654 Mdot .504 .31149 Mdot .512 .31644 Mdot .52001 .32138 Mdot .52801 .32633 Mdot .53601 .33128 Mdot .54402 .33622 Mdot .55202 .34117 Mdot .56002 .34611 Mdot .56803 .35106 Mdot .57603 .35601 Mdot .58403 .36095 Mdot .59204 .3659 Mdot .60004 .37085 Mdot .60804 .37579 Mdot .61605 .38074 Mdot .62405 .38568 Mdot .63205 .39063 Mdot .64006 .39558 Mdot .64806 .40052 Mdot .65606 .40547 Mdot .66407 .41042 Mdot .67207 .41536 Mdot .68007 .42031 Mdot .68808 .42525 Mdot .69608 .4302 Mdot .70408 .43515 Mdot .71208 .44009 Mdot .72009 .44504 Mdot .72809 .44999 Mdot .73609 .45493 Mdot .7441 .45988 Mdot .7521 .46482 Mdot .7601 .46977 Mdot .76811 .47472 Mdot .77611 .47966 Mdot .78411 .48461 Mdot .79212 .48956 Mdot .80012 .4945 Mdot .80812 .49945 Mdot .81613 .50439 Mdot .82413 .50934 Mdot .83213 .51429 Mdot .84014 .51923 Mdot .84814 .52418 Mdot .85614 .52913 Mdot .86415 .53407 Mdot .87215 .53902 Mdot .88015 .54396 Mdot .88816 .54891 Mdot .89616 .55386 Mdot .90416 .5588 Mdot .91216 .56375 Mdot .92017 .5687 Mdot .92817 .57364 Mdot .93617 .57859 Mdot .94418 .58353 Mdot .95218 .58848 Mdot .96018 .59343 Mdot .96819 .59837 Mdot .97619 .60332 Mdot % End of Graphics MathPictureEnd \ \>"], "Graphics", ImageSize->{514.375, 317.938}, ImageMargins->{{43, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, AnimationDisplayTime->0.169, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHgooooo`006?oo ool00ol0003oooooooooo`0Gooooo`Co0000ooooooo=ooooo`006?ooool00ol0003oooooooooo`0G ooooo`Co000000?oooooo`000?l00000ooooooo:ooooo`006?ooool00ol0003oooooooooo`0Hoooo o`;o000000?oooooo`000?l000000_l0003oooooolWooooo000Hooooo`03o`000?oooooooooo01_o oooo1?l0003oooooolWooooo000Hooooo`03o`000?oooooooooo01cooooo0_l00002ooooo`;o0000 ooooooo6ooooo`006?ooool00ol0003oooooooooo`0Oooooo`Co0000ooooooo5ooooo`006?ooool0 0ol0003oooooooooo`0Oooooo`Co000000?oooooo`000?l00000ooooooo2ooooo`006?ooool00ol0 003oooooooooo`0Pooooo`;o000000?oooooo`000?l000000_l0003ooooool7ooooo000Hooooo`?o 00008oooool4o`000?oooooo`Oooool001Sooooo00?o0000ooooooooool09?ooool2o`0000;ooooo 0_l0003ooooookkooooo000Hooooo`03o`000?oooooooooo02Oooooo1?l0003ooooookgooooo000H ooooo`03o`000?oooooooooo02Oooooo1?l000000ooooooo0000o`00003ooooook[ooooo000Hoooo o`03o`000?oooooooooo02Sooooo0_l000000ooooooo0000o`000002o`000?oooooo^Oooool001So oooo00?o0000ooooooooool0:oooool4o`000003ooooool0003o00000?oooooo]_ooool001Sooooo 00?o0000ooooooooool0;?ooool2o`000003ooooool0003o000000;o0000ooooooneooooo`006?oo ool00ol0003oooooooooo`0_ooooo`Co0000ooooooneooooo`006?ooool00ol0003oooooooooo`0` ooooo`;o00000_ooool2o`000?oooooo/_ooool001Sooooo00?o0000ooooooooool0_ooool001Sooooo00?o0000ooooooooool0Z?ooool2o`00 0003ooooool0003o000000;o0000ooooooliooooo`006?ooool00ol0003oooooooooo`2[ooooo`Co 0000ooooooliooooo`006?ooool00ol0003oooooooooo`2/ooooo`;o00000_ooool2o`000?oooooo =_ooool001Sooooo0ol0002_ooooo`Co0000ooooooleooooo`006?ooool00ol0003oooooooooo`2_ ooooo`Co000000?oooooo`000?l00000oooooolbooooo`006?ooool00ol0003oooooooooo`2`oooo o`;o000000?oooooo`000?l000000_l0003ooooooc7ooooo000Hooooo`03o`000?oooooooooo0;?o oooo1?l0003ooooooc7ooooo000Hooooo`03o`000?oooooooooo0;Cooooo0_l00002ooooo`;o0000 ooooool^ooooo`006?ooool00ol0003oooooooooo`2gooooo`Co0000ooooool]ooooo`006?ooool0 0ol0003oooooooooo`2gooooo`Co000000?oooooo`000?l00000oooooolZooooo`006?ooool00ol0 003oooooooooo`2hooooo`;o000000?oooooo`000?l000000_l0003oooooobWooooo000Hooooo`03 o`000?oooooooooo0;_ooooo1?l0003oooooobWooooo000Hooooo`03o`000?oooooooooo0;cooooo 0_l00002ooooo`;o0000oooooolVooooo`006?ooool00ol0003oooooooooo`2oooooo`Co0000oooo oolUooooo`006?ooool00ol0003oooooooooo`2oooooo`Co000000?oooooo`000?l00000oooooolR ooooo`006?ooool3o`000<3ooooo0_l000000ooooooo0000o`000002o`000?oooooo8Oooool001So oooo00?o0000ooooooooool0`oooool4o`000003ooooool0003o00000?oooooo7_ooool001Sooooo 00?o0000ooooooooool0a?ooool2o`000003ooooool0003o000000;o0000oooooolMooooo`006?oo ool00ol0003oooooooooo`37ooooo`Co0000oooooolMooooo`006?ooool00ol0003oooooooooo`38 ooooo`;o00000_ooool2o`000?oooooo6_ooool001Sooooo00?o0000ooooooooool0boooool4o`00 0?oooooo6Oooool001Sooooo00?o0000ooooooooool0boooool4o`000003ooooool0003o00000?oo oooo5_ooool001Sooooo00?o0000ooooooooool0c?ooool2o`000003ooooool0003o000000;o0000 oooooolEooooo`006?ooool00ol0003oooooooooo`3?ooooo`Co0000oooooolEooooo`006?ooool0 0ol0003oooooooooo`3@ooooo`;o00000_ooool2o`000?oooooo4_ooool001Sooooo00?o0000oooo ooooool0doooool4o`000?oooooo4Oooool001Sooooo00?o0000ooooooooool0doooool4o`000003 ooooool0003o00000?oooooo3_ooool001Sooooo00?o0000ooooooooool0e?ooool2o`000003oooo ool0003o000000;o0000ooooool=ooooo`006?ooool3o`000=Oooooo1?l0003oooooo`gooooo000H ooooo`03o`000?oooooooooo0=Sooooo0_l00002ooooo`;o0000ooooool:ooooo`006?ooool00ol0 003oooooooooo`3Kooooo`Co0000ooooool9ooooo`006?ooool00ol0003oooooooooo`3Kooooo`Co 000000?oooooo`000?l00000ooooool6ooooo`006?ooool00ol0003oooooooooo`3Looooo`;o0000 00?oooooo`000?l000000_l0003oooooo`Gooooo000Hooooo`03o`000?oooooooooo0=oooooo1?l0 003oooooo`Gooooo000Hooooo`03o`000?oooooooooo0>3ooooo0_l00002ooooo`;o0000ooooool2 ooooo`006?ooool00ol0003oooooooooo`3Sooooo`Co0000ooooool1ooooo`006?ooool00ol0003o ooooooooo`3Sooooo`Co000000?oooooo`000?l00000oOooool001Sooooo00?o0000ooooooooool0 i?ooool2o`000003ooooool0003o000000;o0000o?ooool000Oooooo0ol00004ooooo`;o00002?oo ool00ol0003oooooooooo`3Wooooo`Co0000o?ooool000Kooooo00Go0000ooooooooooooooooo`00 0002ooooo`04o`000?ooooooooooo`0000Oooooo00?o0000ooooooooool0j?ooool2o`0000;ooooo 0_l0003iooooo`001_ooool01Ol0003ooooooooooooooooo000000;ooooo00Co0000oooooooooooo 00001oooool4o`000>[ooooo1?l0003hooooo`001_ooool4o`0000?ooooo00Co0000oooooooooooo 00001oooool00ol0003oooooooooo`3[ooooo`Co000000?oooooo`000?l00000mOooool000Kooooo 00?o0000ooooooooool01?ooool01?l0003oooooooooool00007ooooo`03o`000?oooooooooo0>co oooo0_l000000ooooooo0000o`000002o`000?Cooooo0007ooooo`03o`000?oooooooooo00?ooooo 00Co0000oooooooooooo00001oooool00ol0003oooooooooo`3_ooooo`Co0000m?ooool000Sooooo 0_l00004ooooo`;o00002?ooool00ol0003oooooooooo`3`ooooo`;o00000_ooool2o`000?7ooooo 000Hooooo`03o`000?oooooooooo0??ooooo1?l0003`ooooo`006?ooool00ol0003oooooooooo`3c ooooo`Co000000?oooooo`000?l00000kOooool001Sooooo00?o0000ooooooooool0m?ooool2o`00 0003ooooool0003o000000;o0000k?ooool001Sooooo00?o0000ooooooooool0moooool4o`000>co oooo000Hooooo`03o`000?oooooooooo0?Sooooo0_l00002ooooo`;o0000jOooool001Sooooo00?o 0000ooooooooool0noooool4o`000>Sooooo000Hooooo`03o`000?oooooooooo0?_ooooo1?l00000 0ooooooo0000o`00003Uooooo`006?ooool00ol0003oooooooooo`3looooo`;o000000?oooooo`00 0?l000000_l0003Tooooo`006?ooool3o`000?oooooo1?l0003Tooooo`006?ooool00ol0003ooooo ooooo`3oooooo`7ooooo0_l00002ooooo`;o0000hOooool001Sooooo00?o0000ooooooooool0oooo ool4ooooo`Co0000h?ooool001Sooooo00?o0000ooooooooool0ooooool4ooooo`Co000000?ooooo o`000?l00000gOooool001Sooooo00?o0000ooooooooool0ooooool5ooooo`;o000000?oooooo`00 0?l000000_l0003Looooo`006?ooool00ol0003oooooooooo`3oooooo`Sooooo1?l000000ooooooo 0000o`00003Iooooo`006?ooool00ol0003oooooooooo`3oooooo`Wooooo0_l000000ooooooo0000 o`000002o`000=Sooooo000Hooooo`03o`000?oooooooooo0?oooooo3?ooool4o`000=Sooooo000H ooooo`03o`000?oooooooooo0?oooooo3Oooool2o`0000;ooooo0_l0003Eooooo`006?ooool00ol0 003oooooooooo`3ooooooa3ooooo1?l0003Dooooo`006?ooool00ol0003oooooooooo`3ooooooa3o oooo1?l000000ooooooo0000o`00003Aooooo`006?ooool00ol0003oooooooooo`3ooooooa7ooooo 0_l000000ooooooo0000o`000002o`000=3ooooo000Hooooo`?o0000oooooolDooooo`Co0000d?oo ool001Sooooo00?o0000ooooooooool0oooooolEooooo`;o00000_ooool2o`000Oooool001So oooo00?o0000ooooooooool0oooooonYooooo`;o000000?oooooo`000?l000000_l0000hooooo`00 6?ooool00ol0003oooooooooo`3oooooojcooooo1?l0000hooooo`006?ooool00ol0003ooooooooo o`3oooooojgooooo0_l00002ooooo`;o0000=Oooool001Sooooo00?o0000ooooooooool0oooooon` ooooo`Co0000=?ooool001Sooooo00?o0000ooooooooool0oooooon`ooooo`Co000000?oooooo`00 0?l00000"], ImageRangeCache->{{{0, 513.375}, {316.938, 0}} -> {-6.06127, -6.18133, \ 0.249936, 0.404405}}], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ListPlot[Table[ourPhi[k], {k, 10, 600, 5}]]\)], "Input", AnimationDisplayTime->0.169], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart /Mabs { Mgmatrix idtransform Mtmatrix dtransform } bind def /Mabsadd { Mabs 3 -1 roll add 3 1 roll add exch } bind def %% Graphics %%IncludeResource: font Courier %%IncludeFont: Courier /Courier findfont 10 scalefont setfont % Scaling calculations 0.0238095 0.0080032 0.0147151 0.000982644 [ [.18387 .00222 -6 -9 ] [.18387 .00222 6 0 ] [.34394 .00222 -6 -9 ] [.34394 .00222 6 0 ] [.504 .00222 -6 -9 ] [.504 .00222 6 0 ] [.66407 .00222 -6 -9 ] [.66407 .00222 6 0 ] [.82413 .00222 -9 -9 ] [.82413 .00222 9 0 ] [.98419 .00222 -9 -9 ] [.98419 .00222 9 0 ] [.01131 .11298 -18 -4.5 ] [.01131 .11298 0 4.5 ] [.01131 .21124 -18 -4.5 ] [.01131 .21124 0 4.5 ] [.01131 .30951 -18 -4.5 ] [.01131 .30951 0 4.5 ] [.01131 .40777 -18 -4.5 ] [.01131 .40777 0 4.5 ] [.01131 .50604 -18 -4.5 ] [.01131 .50604 0 4.5 ] [.01131 .6043 -18 -4.5 ] [.01131 .6043 0 4.5 ] [ 0 0 0 0 ] [ 1 .61803 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath 0 g .25 Mabswid [ ] 0 setdash .18387 .01472 m .18387 .02097 L s [(20)] .18387 .00222 0 1 Mshowa .34394 .01472 m .34394 .02097 L s [(40)] .34394 .00222 0 1 Mshowa .504 .01472 m .504 .02097 L s [(60)] .504 .00222 0 1 Mshowa .66407 .01472 m .66407 .02097 L s [(80)] .66407 .00222 0 1 Mshowa .82413 .01472 m .82413 .02097 L s [(100)] .82413 .00222 0 1 Mshowa .98419 .01472 m .98419 .02097 L s [(120)] .98419 .00222 0 1 Mshowa .125 Mabswid .06383 .01472 m .06383 .01847 L s .10384 .01472 m .10384 .01847 L s .14386 .01472 m .14386 .01847 L s .22389 .01472 m .22389 .01847 L s .26391 .01472 m .26391 .01847 L s .30392 .01472 m .30392 .01847 L s .38395 .01472 m .38395 .01847 L s .42397 .01472 m .42397 .01847 L s .46399 .01472 m .46399 .01847 L s .54402 .01472 m .54402 .01847 L s .58403 .01472 m .58403 .01847 L s .62405 .01472 m .62405 .01847 L s .70408 .01472 m .70408 .01847 L s .7441 .01472 m .7441 .01847 L s .78411 .01472 m .78411 .01847 L s .86415 .01472 m .86415 .01847 L s .90416 .01472 m .90416 .01847 L s .94418 .01472 m .94418 .01847 L s .25 Mabswid 0 .01472 m 1 .01472 L s .02381 .11298 m .03006 .11298 L s [(100)] .01131 .11298 1 0 Mshowa .02381 .21124 m .03006 .21124 L s [(200)] .01131 .21124 1 0 Mshowa .02381 .30951 m .03006 .30951 L s [(300)] .01131 .30951 1 0 Mshowa .02381 .40777 m .03006 .40777 L s [(400)] .01131 .40777 1 0 Mshowa .02381 .50604 m .03006 .50604 L s [(500)] .01131 .50604 1 0 Mshowa .02381 .6043 m .03006 .6043 L s [(600)] .01131 .6043 1 0 Mshowa .125 Mabswid .02381 .03437 m .02756 .03437 L s .02381 .05402 m .02756 .05402 L s .02381 .07367 m .02756 .07367 L s .02381 .09333 m .02756 .09333 L s .02381 .13263 m .02756 .13263 L s .02381 .15229 m .02756 .15229 L s .02381 .17194 m .02756 .17194 L s .02381 .19159 m .02756 .19159 L s .02381 .2309 m .02756 .2309 L s .02381 .25055 m .02756 .25055 L s .02381 .2702 m .02756 .2702 L s .02381 .28986 m .02756 .28986 L s .02381 .32916 m .02756 .32916 L s .02381 .34881 m .02756 .34881 L s .02381 .36847 m .02756 .36847 L s .02381 .38812 m .02756 .38812 L s .02381 .42743 m .02756 .42743 L s .02381 .44708 m .02756 .44708 L s .02381 .46673 m .02756 .46673 L s .02381 .48638 m .02756 .48638 L s .02381 .52569 m .02756 .52569 L s .02381 .54534 m .02756 .54534 L s .02381 .565 m .02756 .565 L s .02381 .58465 m .02756 .58465 L s .25 Mabswid .02381 0 m .02381 .61803 L s 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath .008 w .03181 .02356 Mdot .03982 .02847 Mdot .04782 .03339 Mdot .05582 .0383 Mdot .06383 .04321 Mdot .07183 .04812 Mdot .07983 .05304 Mdot .08784 .05795 Mdot .09584 .06286 Mdot .10384 .06778 Mdot .11184 .07269 Mdot .11985 .0776 Mdot .12785 .08252 Mdot .13585 .08743 Mdot .14386 .09234 Mdot .15186 .09726 Mdot .15986 .10217 Mdot .16787 .10708 Mdot .17587 .112 Mdot .18387 .11691 Mdot .19188 .12182 Mdot .19988 .12674 Mdot .20788 .13165 Mdot .21589 .13656 Mdot .22389 .14148 Mdot .23189 .14639 Mdot .2399 .1513 Mdot .2479 .15622 Mdot .2559 .16113 Mdot .26391 .16604 Mdot .27191 .17096 Mdot .27991 .17587 Mdot .28792 .18078 Mdot .29592 .1857 Mdot .30392 .19061 Mdot .31192 .19552 Mdot .31993 .20043 Mdot .32793 .20535 Mdot .33593 .21026 Mdot .34394 .21517 Mdot .35194 .22009 Mdot .35994 .225 Mdot .36795 .22991 Mdot .37595 .23483 Mdot .38395 .23974 Mdot .39196 .24465 Mdot .39996 .24957 Mdot .40796 .25448 Mdot .41597 .25939 Mdot .42397 .26431 Mdot .43197 .26922 Mdot .43998 .27413 Mdot .44798 .27905 Mdot .45598 .28396 Mdot .46399 .28887 Mdot .47199 .29379 Mdot .47999 .2987 Mdot .488 .30361 Mdot .496 .30853 Mdot .504 .31344 Mdot .512 .31835 Mdot .52001 .32327 Mdot .52801 .32818 Mdot .53601 .33309 Mdot .54402 .338 Mdot .55202 .34292 Mdot .56002 .34783 Mdot .56803 .35274 Mdot .57603 .35766 Mdot .58403 .36257 Mdot .59204 .36748 Mdot .60004 .3724 Mdot .60804 .37731 Mdot .61605 .38222 Mdot .62405 .38714 Mdot .63205 .39205 Mdot .64006 .39696 Mdot .64806 .40188 Mdot .65606 .40679 Mdot .66407 .4117 Mdot .67207 .41662 Mdot .68007 .42153 Mdot .68808 .42644 Mdot .69608 .43136 Mdot .70408 .43627 Mdot .71208 .44118 Mdot .72009 .4461 Mdot .72809 .45101 Mdot .73609 .45592 Mdot .7441 .46084 Mdot .7521 .46575 Mdot .7601 .47066 Mdot .76811 .47558 Mdot .77611 .48049 Mdot .78411 .4854 Mdot .79212 .49031 Mdot .80012 .49523 Mdot .80812 .50014 Mdot .81613 .50505 Mdot .82413 .50997 Mdot .83213 .51488 Mdot .84014 .51979 Mdot .84814 .52471 Mdot .85614 .52962 Mdot .86415 .53453 Mdot .87215 .53945 Mdot .88015 .54436 Mdot .88816 .54927 Mdot .89616 .55419 Mdot .90416 .5591 Mdot .91216 .56401 Mdot .92017 .56893 Mdot .92817 .57384 Mdot .93617 .57875 Mdot .94418 .58367 Mdot .95218 .58858 Mdot .96018 .59349 Mdot .96819 .59841 Mdot .97619 .60332 Mdot % End of Graphics MathPictureEnd \ \>"], "Graphics", ImageSize->{514.375, 317.938}, ImageMargins->{{43, 0}, {0, 0}}, ImageRegion->{{0, 1}, {0, 1}}, AnimationDisplayTime->0.169, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHgOooool001Sooooo00?o0000ooooooooool0Zoooool4o`000?oo oooo>Oooool001Sooooo00?o0000ooooooooool0[?ooool2o`0000;ooooo0_l0003oooooocKooooo 000Hooooo`03o`000?oooooooooo0:oooooo1?l0003oooooocGooooo000Hooooo`03o`000?oooooo oooo0:oooooo1?l000000ooooooo0000o`00003ooooooc;ooooo000Hooooo`03o`000?oooooooooo 0;3ooooo0_l000000ooooooo0000o`000002o`000?oooooo_ooooo1?l0003hooooo`0000Go0000ooooooooooooooooo`000002ooooo`04o`000?oooooooooo o`0000;ooooo00Co0000oooooooooooo00001oooool00ol0003oooooooooo`3[ooooo`Co000000?o ooooo`000?l00000mOooool00004ooooool0003o0000o`0000Cooooo0_l00004ooooo`;o00002?oo ool00ol0003oooooooooo`3/ooooo`;o000000?oooooo`000?l000000_l0003dooooo`006?ooool0 0ol0003oooooooooo`3_ooooo`Co0000m?ooool001Sooooo00?o0000ooooooooool0l?ooool2o`00 00;ooooo0_l0003aooooo`006?ooool00ol0003oooooooooo`3cooooo`Co0000l?ooool001Sooooo 00?o0000ooooooooool0loooool4o`000003ooooool0003o00000>gooooo000Hooooo`03o`000?oo oooooooo0?Cooooo0_l000000ooooooo0000o`000002o`000>cooooo000Hooooo`?o0000moooool4 o`000>cooooo000Hooooo`03o`000?oooooooooo0?Sooooo0_l00002ooooo`;o0000jOooool001So oooo00?o0000ooooooooool0noooool4o`000>Sooooo000Hooooo`03o`000?oooooooooo0?_ooooo 1?l000000ooooooo0000o`00003Uooooo`006?ooool00ol0003oooooooooo`3looooo`;o000000?o ooooo`000?l000000_l0003Tooooo`006?ooool00ol0003oooooooooo`3oooooo`Co000000?ooooo o`000?l00000hOooool001Sooooo00?o0000ooooooooool0ooooool1ooooo`;o000000?oooooo`00 0?l000000_l0003Pooooo`006?ooool00ol0003oooooooooo`3oooooo`Cooooo1?l0003Pooooo`00 6?ooool00ol0003oooooooooo`3oooooo`Gooooo0_l00002ooooo`;o0000gOooool001Sooooo00?o 0000ooooooooool0ooooool8ooooo`Co0000g?ooool001Sooooo0ol0003oooooo`Sooooo1?l00000 0ooooooo0000o`00003Iooooo`006?ooool00ol0003oooooooooo`3oooooo`Wooooo0_l000000ooo oooo0000o`000002o`000=Sooooo000Hooooo`03o`000?oooooooooo0?oooooo3?ooool4o`000=So oooo000Hooooo`03o`000?oooooooooo0?oooooo3Oooool2o`0000;ooooo0_l0003Eooooo`006?oo ool00ol0003oooooooooo`3ooooooa3ooooo1?l0003Dooooo`006?ooool00ol0003oooooooooo`3o oooooa3ooooo1?l000000ooooooo0000o`00003Aooooo`006?ooool00ol0003oooooooooo`3ooooo oa7ooooo0_l000000ooooooo0000o`000002o`000=3ooooo000Hooooo`03o`000?oooooooooo0?oo oooo5?ooool4o`000=3ooooo000Hooooo`03o`000?oooooooooo0?oooooo5Oooool2o`0000;ooooo 0_l0003=ooooo`006?ooool00ol0003oooooooooo`3ooooooaSooooo1?l0003Oooool001Sooooo00?o0000ooooooooool0oooooon/ooooo`Co0000>?ooool001So oooo00?o0000ooooooooool0oooooon/ooooo`Co000000?oooooo`000?l00000=Oooool001Sooooo 00?o0000ooooooooool0oooooon]ooooo`;o000000?oooooo`000?l000000_l0000dooooo`006?oo ool00ol0003oooooooooo`3ooooook3ooooo1?l000000ooooooo0000o`00000aooooo`006?ooool0 0ol0003oooooooooo`3ooooook7ooooo0_l000000ooooooo0000o`000002o`00033ooooo000Hoooo o`03o`000?oooooooooo0?oooooo]?ooool4o`00033ooooo000Hooooo`03o`000?oooooooooo0?oo oooo]Oooool2o`0000;ooooo0_l0000]ooooo`006?ooool00ol0003oooooooooo`3ooooookSooooo 1?l0000/ooooo`006?ooool3o`000?oooooo^?ooool4o`000003ooooool0003o000002Wooooo000H ooooo`03o`000?oooooooooo0?oooooo^Oooool2o`000003ooooool0003o000000;o0000:?ooool0 01Sooooo00?o0000ooooooooool0oooooonlooooo`Co0000:?ooool001Sooooo00?o0000oooooooo ool0oooooonmooooo`;o00000_ooool2o`0002Gooooo000Hooooo`03o`000?oooooooooo0?oooooo `?ooool4o`0002Cooooo000Hooooo`03o`000?oooooooooo0?oooooo`?ooool4o`000003ooooool0 003o0000027ooooo000Hooooo`03o`000?oooooooooo0?oooooo`Oooool2o`000003ooooool0003o 000000;o00008?ooool001Sooooo00?o0000ooooooooool0ooooooo4ooooo`Co00008?ooool001So oooo00?o0000ooooooooool0ooooooo5ooooo`;o00000_ooool2o`0001gooooo000Hooooo`03o`00 0?oooooooooo0?oooooob?ooool4o`0001cooooo000Hooooo`?o0000ooooooo8ooooo`Co000000?o ooooo`000?l000006Oooool001Sooooo00?o0000ooooooooool0ooooooo9ooooo`;o000000?ooooo o`000?l000000_l0000Hooooo`006?ooool00ol0003oooooooooo`3oooooolcooooo1?l0000Hoooo o`006?ooool00ol0003oooooooooo`3oooooolgooooo0_l00002ooooo`;o00005Oooool001Sooooo 00?o0000ooooooooool0ooooooo@ooooo`Co00005?ooool001Sooooo00?o0000ooooooooool0oooo ooo@ooooo`Co000000?oooooo`000?l000004Oooool001Sooooo00?o0000ooooooooool0oooooooA ooooo`;o000000?oooooo`000?l000000_l0000@ooooo`0000Coooooo`000?l0003o00001?ooool2 o`0000Cooooo0_l00008ooooo`03o`000?oooooooooo0?ooooooe?ooool4o`00013ooooo00001Ol0 003ooooooooooooooooo000000;ooooo00Co0000oooooooooooo00000_ooool01?l0003ooooooooo ool00007ooooo`03o`000?oooooooooo0?ooooooeOooool2o`0000;ooooo0_l0000=ooooo`0000Go 0000ooooooooooooooooo`000002ooooo`04o`000?ooooooooooo`0000;ooooo00Co0000oooooooo oooo00001oooool00ol0003oooooooooo`3oooooomSooooo1?l0000"], ImageRangeCache->{{{0, 513.375}, {316.938, 0}} -> {-6.06127, -31.1144, \ 0.249936, 2.03562}}], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell["Question", "Subsubsection"], Cell["\<\ For which entries n does \[Phi](n) correspond to 5 \ \[Phi](5n). To see this, animate both graphs after correctly aligning them.\ \>", "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Efficiency", "Subsection"], Cell[TextData[{ "It is remarkable that our program is not significantly slower than the one \ built-in in ", StyleBox["Mathematica", FontSlant->"Italic"], " . \nThe main reason is that they both use FactorInteger and this amounts \ for most of the processor usage." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Timing[EulerPhi[10^20 - 3]]\)], "Input"], Cell[BoxData[ \({0.08999999999999986`\ Second, 95647036114066694400}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Timing[ourPhi[10^20 - 3]]\)], "Input"], Cell[BoxData[ \({0.`\ Second, 99999999999999999996}\)], "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Conclusion", "Section"], Cell[TextData[{ "Programming in ", StyleBox["Mathematica", FontSlant->"Italic"], " is simple, transparant and fast" }], "Subsubsection", CellDingbat->None] }, Open ]] }, Open ]] }, FrontEndVersion->"5.0 for Macintosh", ScreenRectangle->{{0, 1115}, {0, 746}}, WindowSize->{887, 654}, WindowMargins->{{86, Automatic}, {Automatic, 1}} ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 45, 0, 52, "Subtitle"], Cell[1824, 55, 81, 4, 64, "Subsubtitle"], Cell[CellGroupData[{ Cell[1930, 63, 31, 0, 69, "Section"], Cell[1964, 65, 309, 7, 48, "Text"], Cell[CellGroupData[{ Cell[2298, 76, 45, 1, 27, "Input"], Cell[2346, 79, 35, 1, 70, "Output"] }, Open ]], Cell[2396, 83, 259, 7, 45, "Text"], Cell[CellGroupData[{ Cell[2680, 94, 42, 1, 27, "Input"], Cell[2725, 97, 65, 1, 70, "Output"] }, Open ]], Cell[2805, 101, 60, 0, 30, "Text"], Cell[CellGroupData[{ Cell[2890, 105, 57, 1, 27, "Input"], Cell[2950, 108, 41, 1, 70, "Output"] }, Open ]], Cell[3006, 112, 56, 0, 30, "Text"], Cell[CellGroupData[{ Cell[3087, 116, 64, 1, 27, "Input"], Cell[3154, 119, 92, 1, 70, "Output"] }, Open ]], Cell[3261, 123, 100, 3, 30, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[3398, 131, 42, 0, 39, "Section"], Cell[CellGroupData[{ Cell[3465, 135, 56, 0, 38, "Subsection"], Cell[CellGroupData[{ Cell[3546, 139, 39, 1, 27, "Input"], Cell[3588, 142, 36, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[3661, 148, 49, 1, 27, "Input"], Cell[3713, 151, 58, 1, 70, "Output"] }, Open ]], Cell[3786, 155, 113, 3, 30, "Text"], Cell[CellGroupData[{ Cell[3924, 162, 81, 1, 27, "Input"], Cell[4008, 165, 185, 3, 70, "Message"] }, Open ]], Cell[4208, 171, 65, 1, 27, "Input"], Cell[CellGroupData[{ Cell[4298, 176, 59, 1, 27, "Input"], Cell[4360, 179, 64, 1, 70, "Output"] }, Open ]], Cell[4439, 183, 68, 1, 27, "Input"], Cell[CellGroupData[{ Cell[4532, 188, 62, 1, 27, "Input"], Cell[4597, 191, 122, 2, 70, "Output"] }, Open ]], Cell[4734, 196, 665, 14, 105, "Text"], Cell[CellGroupData[{ Cell[5424, 214, 143, 2, 27, "Input"], Cell[5570, 218, 773, 17, 70, "Output"] }, Open ]], Cell[6358, 238, 27, 0, 30, "Text"], Cell[CellGroupData[{ Cell[6410, 242, 49, 1, 27, "Input"], Cell[6462, 245, 58, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6557, 251, 52, 1, 27, "Input"], Cell[6612, 254, 43, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6692, 260, 55, 1, 27, "Input"], Cell[6750, 263, 52, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6839, 269, 46, 1, 27, "Input"], Cell[6888, 272, 35, 1, 70, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[6972, 279, 61, 0, 30, "Subsection"], Cell[7036, 281, 255, 5, 59, "Input"], Cell[CellGroupData[{ Cell[7316, 290, 32, 0, 42, "Subsubsection"], Cell[CellGroupData[{ Cell[7373, 294, 39, 1, 27, "Input"], Cell[7415, 297, 36, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[7488, 303, 42, 1, 27, "Input"], Cell[7533, 306, 40, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[7610, 312, 40, 1, 27, "Input"], Cell[7653, 315, 46, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[7736, 321, 42, 1, 27, "Input"], Cell[7781, 324, 36, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[7854, 330, 44, 1, 27, "Input"], Cell[7901, 333, 36, 1, 70, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[7998, 341, 43, 0, 30, "Subsection"], Cell[8044, 343, 100, 3, 32, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[8181, 351, 68, 0, 30, "Subsection"], Cell[8252, 353, 53, 0, 30, "Text"], Cell[8308, 355, 118, 4, 32, "Text"], Cell[8429, 361, 119, 4, 32, "Text"], Cell[CellGroupData[{ Cell[8573, 369, 62, 0, 42, "Subsubsection"], Cell[8638, 371, 151, 3, 30, "Text"], Cell[CellGroupData[{ Cell[8814, 378, 51, 1, 27, "Input"], Cell[8868, 381, 43, 1, 70, "Output"] }, Open ]], Cell[8926, 385, 50, 0, 27, "Text"], Cell[CellGroupData[{ Cell[9001, 389, 49, 1, 27, "Input"], Cell[9053, 392, 41, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9131, 398, 61, 1, 24, "Input"], Cell[9195, 401, 64, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9296, 407, 46, 1, 24, "Input"], Cell[9345, 410, 89, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9471, 416, 52, 1, 24, "Input"], Cell[9526, 419, 83, 1, 70, "Output"] }, Open ]], Cell[9624, 423, 33, 0, 27, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[9694, 428, 55, 1, 28, "Subsubsection"], Cell[9752, 431, 230, 7, 46, "Text"] }, Closed]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[10043, 445, 31, 0, 69, "Section"], Cell[CellGroupData[{ Cell[10099, 449, 38, 0, 38, "Subsection"], Cell[10140, 451, 109, 3, 30, "Text"], Cell[CellGroupData[{ Cell[10274, 458, 72, 1, 27, "Input"], Cell[10349, 461, 33025, 693, 70, 5535, 349, "GraphicsData", "PostScript", \ "Graphics"], Cell[43377, 1156, 130, 3, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[43544, 1164, 107, 2, 24, "Input"], Cell[43654, 1168, 33803, 719, 70, 5734, 367, "GraphicsData", "PostScript", \ "Graphics"], Cell[77460, 1889, 130, 3, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[77627, 1897, 33, 0, 28, "Subsubsection"], Cell[77663, 1899, 160, 4, 46, "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[77872, 1909, 32, 0, 30, "Subsection"], Cell[77907, 1911, 289, 7, 48, "Text"], Cell[CellGroupData[{ Cell[78221, 1922, 60, 1, 27, "Input"], Cell[78284, 1925, 86, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[78407, 1931, 58, 1, 27, "Input"], Cell[78468, 1934, 69, 1, 70, "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[78598, 1942, 29, 0, 69, "Section"], Cell[78630, 1944, 167, 6, 28, "Subsubsection"] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)