{VERSION 7 1 "Linux" "7.1" } {USTYLETAB {PSTYLE "Heading 4" -1 20 1 {CSTYLE "" -1 -1 "MS Serif" 1 12 0 0 0 1 1 2 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Ordered List 5" -1 200 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 144 2 0 2 2 -1 1 }{PSTYLE "Ordered List 1 " -1 201 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 } 1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Bullet Item" -1 15 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Left Justified Maple Output" -1 12 1 {CSTYLE "" -1 -1 "" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Help" -1 10 1 {CSTYLE "" -1 -1 "" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Author" -1 19 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 8 8 2 0 2 0 2 2 -1 1 }{PSTYLE "Diagnostic" -1 9 1 {CSTYLE "" -1 -1 "Courier" 1 12 40 120 40 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "MS Serif" 1 16 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 2 2 0 2 0 2 2 -1 1 }{PSTYLE "Ordered List 3" -1 202 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 72 2 0 2 2 -1 1 }{PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Norm al" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 } 1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Dash Item" -1 16 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "MS Serif" 1 14 0 0 0 1 1 1 2 2 2 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Orde red List 4" -1 203 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 108 2 0 2 2 -1 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Line Printed Output" -1 6 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "List Item" -1 14 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 0 2 0 2 2 -1 1 }{PSTYLE "Wa rning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Error" -1 8 1 {CSTYLE "" -1 -1 "Courier" 1 12 255 0 255 1 2 2 2 2 2 1 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "Fixed Width" -1 17 1 {CSTYLE "" -1 -1 "" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }3 1 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "He ading 1" -1 3 1 {CSTYLE "" -1 -1 "MS Serif" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }1 1 0 0 8 4 2 0 2 0 2 2 -1 1 }{PSTYLE "Title" -1 18 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 1 2 1 2 2 2 2 1 0 0 1 }3 1 0 0 12 12 2 0 2 0 2 2 -1 1 }{PSTYLE "Ordered List 2" -1 204 1 {CSTYLE "" -1 -1 "Times " 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 1 0 0 3 3 2 36 2 0 2 2 -1 1 } {CSTYLE "Equation Label" -1 200 "Courier" 1 12 0 0 0 1 2 1 2 2 2 2 0 0 0 1 }{CSTYLE "Text" -1 201 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "Page Number" -1 33 "Times" 1 10 0 0 0 1 2 2 2 2 2 2 0 0 0 1 } {CSTYLE "Maple Input" -1 0 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "2D Output" -1 20 "Times" 1 12 0 0 255 1 2 2 2 2 2 1 0 0 0 1 }{CSTYLE "Dictionary Hyperlink" -1 45 "MS Serif" 1 12 147 0 15 1 2 2 1 2 2 2 0 0 0 1 }{CSTYLE "2D Input" -1 19 "Times" 1 12 0 0 0 1 2 2 2 2 1 2 0 0 0 1 }{CSTYLE "Maple Input Placeholder" -1 202 "Courier" 1 12 200 0 200 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "MS Serif" 1 12 0 128 128 1 2 2 1 2 2 2 0 0 0 1 }{PSTYLE "" -1 205 1 {CSTYLE "" -1 -1 "Times" 1 12 255 0 0 1 2 1 2 2 1 2 1 0 0 1 }1 1 0 0 0 0 2 0 2 0 2 2 -1 1 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT 203 66 "Sz\303\241m\303\255t\303 \263g\303\251pes sz\303\241melm\303\251let" }}}{EXCHG {PARA 19 "" 0 "" {TEXT 204 18 "J\303\241rai Antal" }}}{EXCHG {PARA 19 "" 0 "" {TEXT 204 68 "Ezek a programok csak szeml\303\251ltet\303\251sre szolg\303\2 41lnak" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 59 "1. A pr\303\255mek el oszl\303\241sa, szit\303\241l\303\241s" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 63 "2. Egyszer\305\261 faktoriz\303\241l\303\241si m\303\263 dszerek" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 64 "3. Egyszer\305\261 p r\303\255mtesztel\303\251si m\303\263dszerek" }}{EXCHG {PARA 0 "" 0 "" {XPPEDIT 2 0 "" "%#%?G" }}}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 18 "4. \+ Lucas-sorozatok" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT 205 23 "5. Alkalmaz \303\241sok " }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "restart; with(numtheory);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7QI&GIgcdG6\"I)bigomegaGF$I&cfracGF$I)cfracpolGF$I+cyclot omicGF$I)divisorsGF$I)factorEQGF$I*factorsetGF$I'fermatGF$I)imagunitGF $I&indexGF$I/integral_basisGF$I)invcfracGF$I'invphiGF$I*issqrfreeGF$I' jacobiGF$I*kroneckerGF$I'lambdaGF$I)legendreGF$I)mcombineGF$I)mersenne GF$I(migcdexGF$I*minkowskiGF$I(mipolysGF$I%mlogGF$I'mobiusGF$I&mrootGF $I&msqrtGF$I)nearestpGF$I*nthconverGF$I)nthdenomGF$I)nthnumerGF$I'nthp owGF$I&orderG%*protectedGI)pdexpandGF$I$phiGF$I#piGF$I*pprimrootGF$I)p rimrootGF$I(quadresGF$I+rootsunityGF$I*safeprimeGF$I&sigmaGF$I*sq2fact orGF$I(sum2sqrGF$I$tauGF$I%thueGF$" }}}{SECT 1 {PARA 4 "" 0 "" {TEXT 206 14 "5.1. Fermat-sz" }{TEXT 206 8 "\303\241" }{TEXT 206 4 "mok." }} }{SECT 0 {PARA 4 "" 0 "" {TEXT 206 13 "5.2. Feladat." }}{PARA 0 "" 0 " " {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" } {MPLTEXT 1 0 59 "# This procedure try to find factors i*2^(n+2)+1, 1<= i<=k\n" }{MPLTEXT 1 0 35 "# of the Fermat number 2^(2^n)+1.\n" } {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 53 "fermatfact ors:=proc(n::posint,k::posint) local i,f;\n" }{MPLTEXT 1 0 8 "f:=[];\n " }{MPLTEXT 1 0 51 "for i from 1+2^(n+2) by 2^(n+2) to k*2^(n+2)+1 do \n" }{MPLTEXT 1 0 46 " if 2&^(2^n)+1 mod i=0 then f:=[op(f),i] fi\n" }{MPLTEXT 1 0 10 "od; f end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6$'I\" nG6\"I'posintG%*protectedG'I\"kGF&F'6$I\"iGF&I\"fGF&F&F&C%>F-7\"?(F,,& \"\"\"F3)\"\"#,&F%F3F5F3F3F4,&*&F*F3F4F3F3F3F3I%trueGF(@$/-I$modGF&6$, &-I#&^GF&6$F5)F5F%F3F3F3F,\"\"!>F-7$-I#opGF(6#F-F,F-F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "fermatfactors(5,10); fermatfactors( 5,100000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7#\"$T'" }}{PARA 11 "" 1 " " {XPPMATH 20 "7$\"$T'\"( " 0 "" {MPLTEXT 1 0 25 "interface(verboseproc=2);" }}{PARA 11 "" 1 " " {XPPMATH 20 "\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "pr int(fermat);" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6$'I\"nG6\"-I#OrGF&6$I *nonnegintG%*protectedG-I$NotGF&6#I)constantGF+I&_infoGF&6$I\"fGF&I%in foGF&6#IaoCopyright~(c)~1992~by~the~University~of~Waterloo.~All~rights ~reserved.GF&F&@)/%&nargsG\"\"!O6$-I$catGF+6$IJThe~primality~character ~of~the~following~GF&IBFermat~numbers~is~known~to~Maple:GF&-I%sortGF+6 #-I(convertGF+6$I5known_fermat_numbersGF&.I%listGF+-I%typeGF+6$F%.I%na meGF+O,&)\"\"#)FRF%\"\"\"FTFT-FK6$F%.F*C%@'4-I'memberGF+6$F%FGOI2chara cter~unknownGF&52F%\"#A/I,_EnvTryHardGF&I%trueGF+>F2FP>F2I/object~too~ bigGF&@$/F8FR@=1F%\"\"%>F0I,it~is~primeGF&/F%\"\"&>F06$I;it~is~complet ely~factored~GF&*&-I!GF&6#,&-I(ifactorGF&6#\"$S'FTFTFTFT-Fap6#,&-Fep6# \"(;/q'FTFTFTFT/F%\"\"'>F06$F^p*&-Fap6#,&-Fep6#\"'wTFFTFTFTFT-Fap6#,&- Fep6#\"/?2J@/GnFTFTFTFT/F%\"\"(>F06$F^p*&-Fap6#,&-Fep6#\"2;s\\F\"*e\\' fFTFTFTFT-Fap6#,&-Fep6#\"7?Z0H^o+#*o/dFTFTFTFT/F%\"\")>F06$F^p*&-Fap6# ,&-Fep6#\"1'*Gbhj#*Q7FTFTFTFT,&*&)-Fap6#FR\"#6FT-Fap6#\"fn:xw@!y3Lo7os \\!=:_OR*f#ePYEnicNc%FTFTFTFTFT/F%\"\"*>F06$F^p*(-Fap6#,&-Fep6#\"(K[U# FTFTFTFT,&*&-Fap6#\"O(f!>7$y$Gm\"=,WA5h4)3@n5VSOFTF]tFTFTFTFTFT,&*&-Fa p6#\"[q2$plj@GBUnlqv]SO_9V^\"*3'HF?&f/$eD2a!=jr\\-#=C!\\)Ho$*G@OFTF]tF TFTFTFTFT/F%\"#5>F06$F^p**-Fap6#,&-Fep6#\")wDfXFTFTFTFT-Fap6#,&-Fep6# \"+3=.(['FTFTFTFT,&*&-Fap6#\"F^!H_;+%*>k'*3\"[jDdSw8\"FT)F^t\"#7FTFTFT FTFT,&*&-Fap6#,&*&#FT\"inKwB$e70L+H'\\.Iw8\\_fMa)H]&GUk#4.!H6FTF2FTFT# FT\"%#>)!\"\"FT)F^t\"#8FTFTFTFTFT/F%F`t>F06$F^p*,-Fap6#,&-Fep6#\"')[>$ FTFTFTFT-Fap6#,&-Fep6#\"'[[(*FTFTFTFT,&*&-Fap6#\"2z7`%y2KD5FT)F^t\"#9F TFTFTFTFT,&*&-Fap6#\"36(QHG%3tYVFTF\\xFTFTFTFTFT,&*&-Fap6#,&*&#FT\"ens #)*44l=s)H2M.Mu,G#RW5SIwPrc9i_\"FTF2FTFTFiwF[xFTF\\xFTFTFTFTFT/F%Fdy>F 0I1it~is~composite~GF&/F%\"#?>F0I0it~is~compositeGF&/F%F\\oFgz/F%\"#CF gzFenC$@%-I)assignedGF+6#&I+fermat_tabGF&6#F%>F3Fa[lYQFnumber~recogniz ed~but~no~factor~knownF&>F06$-I#ifGF+6%/-I%nopsGF+6#F3FTI:it~has~this~ prime~factor~GF&I " 0 "" {MPLTEXT 1 0 287 "mersennes:=[2,3, 5,7,13,17,19,31,61,89,107,127,521,607,1279,2203,2281,3217,4253,4423,96 89,9941,11213,19937,21701,23209,44497,86243,110503,132049,216091,75683 9,859833,1257787,1398269,2976221,3021377,6972593,13466917,20996011,240 36583,25964951,30402457,32582657,37156667,42643801,43112609];" }} {PARA 11 "" 1 "" {XPPMATH 20 "7Q\"\"#\"\"$\"\"&\"\"(\"#8\"#<\"#>\"#J\" #h\"#*)\"$2\"\"$F\"\"$@&\"$2'\"%z7\"%.A\"%\"G#\"%\"&,<#\"&4K#\"&(\\W\"&Vi)\"'.06\"'\\?8\"'\"4;#\"'Rov\" 'L)f)\"((yd7\"(p#)R\"\"(@i(H\"(x8-$\"($fsp\") " 0 "" {MPLTEXT 1 0 27 "map(p->p mod 4, mersennes);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7Q\"\"#\"\"$\"\"\"F$F%F%F$F$F%F%F$F$F%F$F$F$F%F%F%F$F%F%F %F%F%F%F%F$F$F%F$F$F%F$F%F%F%F%F%F$F$F$F%F%F$F%F%" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 62 "logm:=evalf([[i,log[2.](mersennes[i])]$i=1.. nops(mersennes)]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7Q7$$\"\"\"\"\"!$ \"+++++5!\"*7$$\"\"#F&$\"+,D'\\e\"F)7$$\"\"$F&$\"+%4G>K#F)7$$\"\"%F&$ \"+A\\N2GF)7$$\"\"&F&$\"+=(R/q$F)7$$\"\"'F&$\"+TGY(3%F)7$$\"\"(F&$\"+9 v#zC%F)7$$\"\")F&$\"+5j>a\\F)7$$\"\"*F&$\"+QttIfF)7$$\"#5F&$\"+KMtvkF) 7$$\"#6F&$\"+')pYTnF)7$$\"#7F&$\"+(o%o))pF)7$$\"#8F&$\"+j&R^-*F)7$$\"# 9F&$\"+2FbX#*F)7$$\"#:F&$\"+b+3K5!\")7$$\"#;F&$\"+y`_56Fjo7$$\"#F&$\"+9lU07Fjo7$$\"#?F&$\"+`4367F jo7$$\"#@F&$\"+1K@C8Fjo7$$\"#AF&$\"+Fv\"zK\"Fjo7$$\"#BF&$\"+q%)GX8Fjo7 $$\"#CF&$\"+sgJG9Fjo7$$\"#DF&$\"+!RZ0W\"Fjo7$$\"#EF&$\"+u'R-X\"Fjo7$$ \"#FF&$\"+X?9W:Fjo7$$\"#GF&$\"+u>hR;Fjo7$$\"#HF&$\"+,EPv;Fjo7$$\"#IF&$ \"+%Qr5q\"Fjo7$$\"#JF&$\"+Yz7sFjo7$$\"#LF&$\"+ &pp8(>Fjo7$$\"#MF&$\"+@cCE?Fjo7$$\"#NF&$\"+]5_T?Fjo7$$\"#OF&$\"+A]]]@F jo7$$\"#PF&$\"+zun_@Fjo7$$\"#QF&$\"+&QELF#Fjo7$$\"#RF&$\"+F;HoBFjo7$$ \"#SF&$\"+$>hBV#Fjo7$$\"#TF&$\"+\\G(=X#Fjo7$$\"#UF&$\"+ " 0 "" {MPLTEXT 1 0 33 "with(plots); plotm:=plot(logm):\n" }{MPLTEXT 1 0 60 "plotline :=plot(evalf(exp(-gamma))*x,x=1..nops(mersennes)):\n" }{MPLTEXT 1 0 33 "pointm:=plot(logm,style=POINT):\n" }{MPLTEXT 1 0 35 "display(\{plo tline,plotm,pointm\});" }}{PARA 11 "" 1 "" {XPPMATH 20 "7gnI,Interacti veG6\"I(animateGF$I*animate3dGF$I-animatecurveGF$I&arrowGF$I-changecoo rdsGI(_syslibGF$I,complexplotGF$I.complexplot3dGF$I*conformalGF$I,conf ormal3dGF$I,contourplotGF$I.contourplot3dGF$I*coordplotGF$I,coordplot3 dGF$I-cylinderplotGF$I,densityplotGF$I(displayGF$I*display3dGF$I*field plotGF$I,fieldplot3dGF$I)gradplotGF$I+gradplot3dGF$I,graphplot3dGF$I-i mplicitplotGF$I/implicitplot3dGF$I(inequalGF$I,interactiveGF$I2interac tiveparamsGF$I-listcontplotGF$I/listcontplot3dGF$I0listdensityplotGF$I )listplotGF$I+listplot3dGF$I+loglogplotGF$I(logplotGF$I+matrixplotGF$I )multipleGF$I(odeplotGF$I'paretoGF$I,plotcompareGF$I*pointplotGF$I,poi ntplot3dGF$I*polarplotGF$I,polygonplotGF$I.polygonplot3dGF$I4polyhedra _supportedGF$I.polyhedraplotGF$I'replotGF$I*rootlocusGF$I,semilogplotG F$I+setoptionsGF$I-setoptions3dGF$I+spacecurveGF$I1sparsematrixplotGF$ I+sphereplotGF$I)surfdataGF$I)textplotGF$I+textplot3dGF$I)tubeplotGF$" }}{PARA 13 "" 1 "" {TEXT 207 0 "" }{GLPLOT2D 400 400 400 {PLOTDATA 2 "6'-%+AXESLABELSG6'Q!6\"F&-%%FONTG6$%*HELVETICAG\"#5%+HORIZONTALGF--%' CURVESG6%7Q7$$\"\"\"\"\"!F37$$\"\"#F5$\"3\"******4]i\\e\"!#<7$$\"\"$F5 $\"3++++%4G>K#F;7$$\"\"%F5$\"3.+++A\\N2GF;7$$\"\"&F5$\"3;+++=(R/q$F;7$ $\"\"'F5$\"3z*****4%GY(3%F;7$$\"\"(F5$\"3p*****R^FzC%F;7$$\"\")F5$\"3Q +++5j>a\\F;7$$\"\"*F5$\"38+++QttIfF;7$$F,F5$\"3=+++KMtvkF;7$$\"#6F5$\" 3$)*****f)pYTnF;7$$\"#7F5$\"3B*****po%o))pF;7$$\"#8F5$\"3v*****HcR^-*F ;7$$\"#9F5$\"3()*****pq_bC*F;7$$\"#:F5$\"3&******\\0!3K5!#;7$$\"#;F5$ \"3++++y`_56Ffp7$$\"#F5$\"3++++9lU07Ffp7$$\"#?F5$\"3#******H&4367Ffp7$$\"#@F5$\"3%******f ?8UK\"Ffp7$$\"#AF5$\"3'******p_2;$G9Ffp7$$\"#DF5$\"30+++!RZ0W\"Ffp7$$\"#EF5$\"3++++u' R-X\"Ffp7$$\"#FF5$\"32+++X?9W:Ffp7$$\"#GF5$\"3'******R(>hR;Ffp7$$\"#HF 5$\"37+++,EPv;Ffp7$$\"#IF5$\"36+++%Qr5q\"Ffp7$$\"#JF5$\"3;+++Yz7sFfp7$$\"#LF5$\"3#******\\pp8(>Ffp7$$\"#MF5$\"3* ******4iXi-#Ffp7$$\"#NF5$\"31+++]5_T?Ffp7$$\"#OF5$\"36+++A]]]@Ffp7$$\" #PF5$\"35+++zun_@Ffp7$$\"#QF5$\"3-+++&QELF#Ffp7$$\"#RF5$\"3)******pi\" HoBFfp7$$\"#SF5$\"3%)*****H>hBV#Ffp7$$\"#TF5$\"34+++\\G(=X#Ffp7$$\"#UF 5$\"3')*****p@1IY#Ffp7$$\"#VF5$\"3;+++f%od[#Ffp7$$\"#WF5$\"33+++#4gd \\#Ffp7$$\"#XF5$\"3/+++wTsn3'[F;7$$\"3b++v)G/.j*F;$\"3SSC(Gn DqS&F;7$$\"3YLL$)*R*3j5Ffp$\"3(Hd5XD;)ofF;7$$\"3qmm\"fR@7:\"Ffp$\"3HGk g/\")F;7$$\"3nm;/8xCL:Ffp$ \"3e^D&>pk&3')F;7$$\"3TLL$yh:pj\"Ffp$\"3;$ya[(zh!>*F;7$$\"3QLLLJftC Ffp$\"3TaR.ye\\w5Ffp7$$\"3B+]P$)z_;?Ffp$\"3)pn5-w)>K6Ffp7$$\"38+]7!>+5 6#Ffp$\"3J%3Fm2T_=\"Ffp7$$\"3iLL3F?d4AFfp$\"3o8KIp^eS7Ffp7$$\"3ZL$3Uu \"4+BFfp$\"3?Me$HK39H\"Ffp7$$\"3smm\"z[HxR#Ffp$\"33%=)4gzAY8Ffp7$$\"3o m;/jw9*\\#Ffp$\"3'4_Jj:qJS\"Ffp7$$\"3'***\\i#[Kue#Ffp$\"3W)\\Wb]QFX\"F fp7$$\"3tmmT1Dy#o#Ffp$\"3G:Qm!oti]\"Ffp7$$\"3))*****4T)G\"y#Ffp$\"3NCF )\\v!eh:Ffp7$$\"3#****\\2Adw(GFfp$\"351,9Pzo:;Ffp7$$\"3A+]P***)*3(HFfp $\"3Ffp7$$\"3'HL3 nkhxa$Ffp$\"3/Yn4AW#>*>Ffp7$$\"3R+]([PQXk$Ffp$\"3u+x\"Rjgi/#Ffp7$$\"30 LL$eJb\"RPFfp$\"3/yzs7UQ*4#Ffp7$$\"3'***\\P%[5#QQFfp$\"39$H0ln**\\:#Ff p7$$\"3Mnmm%Q7O$RFfp$\"3W6v+]io;0+YFfp$\"3r5&*RME u#e#Ffp7$Fcz$\"3')***>Hdf)QEFfpF[[l-%%VIEWG6$;F_[lFcz;$\"1;+!)oen\"\\% F;$\"/7TXQ^!p#!#7" 1 2 2 1 10 1 2 6 1 4 2 1.0 45.0 45.0 1 0 "Curve 1" "Curve 2" "Curve 3" }}{TEXT 207 0 "" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 13 "5.5. Feladat." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 56 "# This proced ure do a pretest for the Mersenne numbers\n" }{MPLTEXT 1 0 44 "# M[n]= 2^n-1. The exponents are taken from\n" }{MPLTEXT 1 0 60 "# the sequenc e L. The result is the sequence of sequences,\n" }{MPLTEXT 1 0 57 "# w hich contains all exponents n which is prime and the\n" }{MPLTEXT 1 0 63 "# prime divisors having the form 2*k*n+1 for k until K, where\n" } {MPLTEXT 1 0 33 "# k congruent to 0 or -n mod 4.\n" }{MPLTEXT 1 0 3 "# \n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 50 "mersennepretest:=proc(L::li st(posint),K::posint)\n" }{MPLTEXT 1 0 33 "local nL,D,M,n,k,d1,d2; nL: =[];\n" }{MPLTEXT 1 0 15 "for n in L do\n" }{MPLTEXT 1 0 22 " if ispr ime(n) then\n" }{MPLTEXT 1 0 44 " D:=[n]; d1:=modp(n,4); d2:=modp(- n,4);\n" }{MPLTEXT 1 0 33 " for k from d2 while k<=K do\n" } {MPLTEXT 1 0 19 " M:=2*k*n+1;\n" }{MPLTEXT 1 0 26 " if ispri me(M) then\n" }{MPLTEXT 1 0 52 " if pmod(2&^n-1,M)=0 then D:=[o p(D),M]; fi;\n" }{MPLTEXT 1 0 11 " fi;\n" }{MPLTEXT 1 0 28 " \+ k:=k+d1; M:=2*k*n+1;\n" }{MPLTEXT 1 0 26 " if isprime(M) then\n" }{MPLTEXT 1 0 49 " if 2&^n-1 mod M=0 then D:=[op(D),M] fi;\n" }{MPLTEXT 1 0 11 " fi;\n" }{MPLTEXT 1 0 16 " k:=k+d2;\n" } {MPLTEXT 1 0 9 " od;\n" }{MPLTEXT 1 0 21 " nL:=[op(nL),D];\n" } {MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 19 "od; nL end;" }} {PARA 11 "" 1 "" {XPPMATH 20 "f*6$'I\"LG6\"-I%listG%*protectedG6#I'pos intGF)'I\"KGF&F+6)I#nLGF&I\"DGF&I\"MGF&I\"nGF&I\"kGF&I#d1GF&I#d2GF&F&F &C%>F/7\"?&F2F%I%trueGF)@$-I(isprimeGF&6#F2C'>F07#F2>F4-I%modpGF)6$F2 \"\"%>F5-FD6$,$F2!\"\"FF?(F3F5\"\"\"F&1F3F-C(>F1,&*(\"\"#FMF3FMF2FMFMF MFM@$-F=6#F1@$/-I%pmodGF&6$,&-I#&^GF&6$FSF2FMFMFKF1\"\"!>F07$-I#opGF)6 #F0F1>F3,&F3FMF4FMFP@$FU@$/-I$modGF&FenFjnF[o>F3,&F3FMF5FM>F/7$-F^o6#F /F0F/F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "L:=[i$i=20.. 1000];" }}{PARA 11 "" 1 "" {XPPMATH 20 "7ahn\"#?\"#@\"#A\"#B\"#C\"#D\" #E\"#F\"#G\"#H\"#I\"#J\"#K\"#L\"#M\"#N\"#O\"#P\"#Q\"#R\"#S\"#T\"#U\"#V \"#W\"#X\"#Y\"#Z\"#[\"#\\\"#]\"#^\"#_\"#`\"#a\"#b\"#c\"#d\"#e\"#f\"#g \"#h\"#i\"#j\"#k\"#l\"#m\"#n\"#o\"#p\"#q\"#r\"#s\"#t\"#u\"#v\"#w\"#x\" #y\"#z\"#!)\"#\")\"##)\"#$)\"#%)\"#&)\"#')\"#()\"#))\"#*)\"#!*\"#\"*\" ##*\"#$*\"#%*\"#&*\"#'*\"#(*\"#)*\"#**\"$+\"\"$,\"\"$-\"\"$.\"\"$/\"\" $0\"\"$1\"\"$2\"\"$3\"\"$4\"\"$5\"\"$6\"\"$7\"\"$8\"\"$9\"\"$:\"\"$;\" \"$<\"\"$=\"\"$>\"\"$?\"\"$@\"\"$A\"\"$B\"\"$C\"\"$D\"\"$E\"\"$F\"\"$G \"\"$H\"\"$I\"\"$J\"\"$K\"\"$L\"\"$M\"\"$N\"\"$O\"\"$P\"\"$Q\"\"$R\"\" $S\"\"$T\"\"$U\"\"$V\"\"$W\"\"$X\"\"$Y\"\"$Z\"\"$[\"\"$\\\"\"$]\"\"$^ \"\"$_\"\"$`\"\"$a\"\"$b\"\"$c\"\"$d\"\"$e\"\"$f\"\"$g\"\"$h\"\"$i\"\" $j\"\"$k\"\"$l\"\"$m\"\"$n\"\"$o\"\"$p\"\"$q\"\"$r\"\"$s\"\"$t\"\"$u\" \"$v\"\"$w\"\"$x\"\"$y\"\"$z\"\"$!=\"$\"=\"$#=\"$$=\"$%=\"$&=\"$'=\"$( =\"$)=\"$*=\"$!>\"$\">\"$#>\"$$>\"$%>\"$&>\"$'>\"$(>\"$)>\"$*>\"$+#\"$ ,#\"$-#\"$.#\"$/#\"$0#\"$1#\"$2#\"$3#\"$4#\"$5#\"$6#\"$7#\"$8#\"$9#\"$ :#\"$;#\"$<#\"$=#\"$>#\"$?#\"$@#\"$A#\"$B#\"$C#\"$D#\"$E#\"$F#\"$G#\"$ H#\"$I#\"$J#\"$K#\"$L#\"$M#\"$N#\"$O#\"$P#\"$Q#\"$R#\"$S#\"$T#\"$U#\"$ V#\"$W#\"$X#\"$Y#\"$Z#\"$[#\"$\\#\"$]#\"$^#\"$_#\"$`#\"$a#\"$b#\"$c#\" $d#\"$e#\"$f#\"$g#\"$h#\"$i#\"$j#\"$k#\"$l#\"$m#\"$n#\"$o#\"$p#\"$q#\" $r#\"$s#\"$t#\"$u#\"$v#\"$w#\"$x#\"$y#\"$z#\"$!G\"$\"G\"$#G\"$$G\"$%G \"$&G\"$'G\"$(G\"$)G\"$*G\"$!H\"$\"H\"$#H\"$$H\"$%H\"$&H\"$'H\"$(H\"$) H\"$*H\"$+$\"$,$\"$-$\"$.$\"$/$\"$0$\"$1$\"$2$\"$3$\"$4$\"$5$\"$6$\"$7 $\"$8$\"$9$\"$:$\"$;$\"$<$\"$=$\"$>$\"$?$\"$@$\"$A$\"$B$\"$C$\"$D$\"$E $\"$F$\"$G$\"$H$\"$I$\"$J$\"$K$\"$L$\"$M$\"$N$\"$O$\"$P$\"$Q$\"$R$\"$S $\"$T$\"$U$\"$V$\"$W$\"$X$\"$Y$\"$Z$\"$[$\"$\\$\"$]$\"$^$\"$_$\"$`$\"$ a$\"$b$\"$c$\"$d$\"$e$\"$f$\"$g$\"$h$\"$i$\"$j$\"$k$\"$l$\"$m$\"$n$\"$ o$\"$p$\"$q$\"$r$\"$s$\"$t$\"$u$\"$v$\"$w$\"$x$\"$y$\"$z$\"$!Q\"$\"Q\" $#Q\"$$Q\"$%Q\"$&Q\"$'Q\"$(Q\"$)Q\"$*Q\"$!R\"$\"R\"$#R\"$$R\"$%R\"$&R \"$'R\"$(R\"$)R\"$*R\"$+%\"$,%\"$-%\"$.%\"$/%\"$0%\"$1%\"$2%\"$3%\"$4% \"$5%\"$6%\"$7%\"$8%\"$9%\"$:%\"$;%\"$<%\"$=%\"$>%\"$?%\"$@%\"$A%\"$B% \"$C%\"$D%\"$E%\"$F%\"$G%\"$H%\"$I%\"$J%\"$K%\"$L%\"$M%\"$N%\"$O%\"$P% \"$Q%\"$R%\"$S%\"$T%\"$U%\"$V%\"$W%\"$X%\"$Y%\"$Z%\"$[%\"$\\%\"$]%\"$^ %\"$_%\"$`%\"$a%\"$b%\"$c%\"$d%\"$e%\"$f%\"$g%\"$h%\"$i%\"$j%\"$k%\"$l %\"$m%\"$n%\"$o%\"$p%\"$q%\"$r%\"$s%\"$t%\"$u%\"$v%\"$w%\"$x%\"$y%\"$z %\"$![\"$\"[\"$#[\"$$[\"$%[\"$&[\"$'[\"$([\"$)[\"$*[\"$!\\\"$\"\\\"$# \\\"$$\\\"$%\\\"$&\\\"$'\\\"$(\\\"$)\\\"$*\\\"$+&\"$,&\"$-&\"$.&\"$/& \"$0&\"$1&\"$2&\"$3&\"$4&\"$5&\"$6&\"$7&\"$8&\"$9&\"$:&\"$;&\"$<&\"$=& \"$>&\"$?&\"$@&\"$A&\"$B&\"$C&\"$D&\"$E&\"$F&\"$G&\"$H&\"$I&\"$J&\"$K& \"$L&\"$M&\"$N&\"$O&\"$P&\"$Q&\"$R&\"$S&\"$T&\"$U&\"$V&\"$W&\"$X&\"$Y& \"$Z&\"$[&\"$\\&\"$]&\"$^&\"$_&\"$`&\"$a&\"$b&\"$c&\"$d&\"$e&\"$f&\"$g &\"$h&\"$i&\"$j&\"$k&\"$l&\"$m&\"$n&\"$o&\"$p&\"$q&\"$r&\"$s&\"$t&\"$u &\"$v&\"$w&\"$x&\"$y&\"$z&\"$!e\"$\"e\"$#e\"$$e\"$%e\"$&e\"$'e\"$(e\"$ )e\"$*e\"$!f\"$\"f\"$#f\"$$f\"$%f\"$&f\"$'f\"$(f\"$)f\"$*f\"$+'\"$,'\" $-'\"$.'\"$/'\"$0'\"$1'\"$2'\"$3'\"$4'\"$5'\"$6'\"$7'\"$8'\"$9'\"$:'\" $;'\"$<'\"$='\"$>'\"$?'\"$@'\"$A'\"$B'\"$C'\"$D'\"$E'\"$F'\"$G'\"$H'\" $I'\"$J'\"$K'\"$L'\"$M'\"$N'\"$O'\"$P'\"$Q'\"$R'\"$S'\"$T'\"$U'\"$V'\" $W'\"$X'\"$Y'\"$Z'\"$['\"$\\'\"$]'\"$^'\"$_'\"$`'\"$a'\"$b'\"$c'\"$d' \"$e'\"$f'\"$g'\"$h'\"$i'\"$j'\"$k'\"$l'\"$m'\"$n'\"$o'\"$p'\"$q'\"$r' \"$s'\"$t'\"$u'\"$v'\"$w'\"$x'\"$y'\"$z'\"$!o\"$\"o\"$#o\"$$o\"$%o\"$& o\"$'o\"$(o\"$)o\"$*o\"$!p\"$\"p\"$#p\"$$p\"$%p\"$&p\"$'p\"$(p\"$)p\"$ *p\"$+(\"$,(\"$-(\"$.(\"$/(\"$0(\"$1(\"$2(\"$3(\"$4(\"$5(\"$6(\"$7(\"$ 8(\"$9(\"$:(\"$;(\"$<(\"$=(\"$>(\"$?(\"$@(\"$A(\"$B(\"$C(\"$D(\"$E(\"$ F(\"$G(\"$H(\"$I(\"$J(\"$K(\"$L(\"$M(\"$N(\"$O(\"$P(\"$Q(\"$R(\"$S(\"$ T(\"$U(\"$V(\"$W(\"$X(\"$Y(\"$Z(\"$[(\"$\\(\"$](\"$^(\"$_(\"$`(\"$a(\" $b(\"$c(\"$d(\"$e(\"$f(\"$g(\"$h(\"$i(\"$j(\"$k(\"$l(\"$m(\"$n(\"$o(\" $p(\"$q(\"$r(\"$s(\"$t(\"$u(\"$v(\"$w(\"$x(\"$y(\"$z(\"$!y\"$\"y\"$#y \"$$y\"$%y\"$&y\"$'y\"$(y\"$)y\"$*y\"$!z\"$\"z\"$#z\"$$z\"$%z\"$&z\"$' z\"$(z\"$)z\"$*z\"$+)\"$,)\"$-)\"$.)\"$/)\"$0)\"$1)\"$2)\"$3)\"$4)\"$5 )\"$6)\"$7)\"$8)\"$9)\"$:)\"$;)\"$<)\"$=)\"$>)\"$?)\"$@)\"$A)\"$B)\"$C )\"$D)\"$E)\"$F)\"$G)\"$H)\"$I)\"$J)\"$K)\"$L)\"$M)\"$N)\"$O)\"$P)\"$Q )\"$R)\"$S)\"$T)\"$U)\"$V)\"$W)\"$X)\"$Y)\"$Z)\"$[)\"$\\)\"$])\"$^)\"$ _)\"$`)\"$a)\"$b)\"$c)\"$d)\"$e)\"$f)\"$g)\"$h)\"$i)\"$j)\"$k)\"$l)\"$ m)\"$n)\"$o)\"$p)\"$q)\"$r)\"$s)\"$t)\"$u)\"$v)\"$w)\"$x)\"$y)\"$z)\"$ !))\"$\"))\"$#))\"$$))\"$%))\"$&))\"$'))\"$())\"$)))\"$*))\"$!*)\"$\"* )\"$#*)\"$$*)\"$%*)\"$&*)\"$'*)\"$(*)\"$)*)\"$**)\"$+*\"$,*\"$-*\"$.* \"$/*\"$0*\"$1*\"$2*\"$3*\"$4*\"$5*\"$6*\"$7*\"$8*\"$9*\"$:*\"$;*\"$<* \"$=*\"$>*\"$?*\"$@*\"$A*\"$B*\"$C*\"$D*\"$E*\"$F*\"$G*\"$H*\"$I*\"$J* \"$K*\"$L*\"$M*\"$N*\"$O*\"$P*\"$Q*\"$R*\"$S*\"$T*\"$U*\"$V*\"$W*\"$X* \"$Y*\"$Z*\"$[*\"$\\*\"$]*\"$^*\"$_*\"$`*\"$a*\"$b*\"$c*\"$d*\"$e*\"$f *\"$g*\"$h*\"$i*\"$j*\"$k*\"$l*\"$m*\"$n*\"$o*\"$p*\"$q*\"$r*\"$s*\"$t *\"$u*\"$v*\"$w*\"$x*\"$y*\"$z*\"$!)*\"$\")*\"$#)*\"$$)*\"$%)*\"$&)*\" $')*\"$()*\"$))*\"$*)*\"$!**\"$\"**\"$#**\"$$**\"$%**\"$&**\"$'**\"$(* *\"$)**\"$***\"%+5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "LL:=m ersennepretest(L,10000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7\\u7#\"#B7% \"#H\"$L#\"%.67#\"#J7#\"#P7#\"#T7#\"#V7#\"#Z7#\"#`7#\"#f7#\"#h7#\"#n7$ \"#r\"'z%G#7#\"#t7#\"#z7#\"#$)7#\"#*)7$\"#(*\"&Z9\"7#\"$,\"7#\"$.\"7# \"$2\"7#\"$4\"7#\"$8\"7#\"$F\"7#\"$J\"7#\"$P\"7#\"$R\"7#\"$\\\"7$\"$^ \"\"'*zl\"7#\"$d\"7#\"$j\"7#\"$n\"7#\"$t\"7$\"$z\"\"%L97#\"$\"=7#\"$\" >7#\"$$>7$\"$(>\"%([(7#\"$*>7#\"$6#7#\"$B#7#\"$F#7$\"$H#\"(tS]\"7#F'7% \"$R#\"%8>\"'$Qw\"7#\"$T#7#\"$^#7#\"$d#7#\"$j#7#\"$p#7#\"$r#7$\"$x#\"( (H@67$\"$\"G\"&H4)7#\"$$G7#\"$$H7#\"$2$7#\"$6$7#\"$8$7#\"$<$7#\"$J$7$ \"$P$\"(Pl!G7#\"$Z$7#\"$\\$7#\"$`$7#\"$f$7#\"$n$7#\"$t$7#\"$z$7#\"$$Q7 #\"$*Q7#\"$(R7#\"$,%7#\"$4%7#\"$>%7#\"$@%7$\"$J%\"%\\M7#\"$L%7#\"$R%7# \"$V%7$\"$\\%\"(.jD\"7#\"$d%7#\"$h%7#\"$j%7#\"$n%7#\"$z%7#\"$([7$\"$\" \\\"(>xq(7#\"$*\\7#\"$.&7#\"$4&7#\"$@&7#\"$B&7#\"$T&7#\"$Z&7#\"$d&7#\" $j&7#\"$p&7$\"$r&\"&4u#7#\"$x&7#\"$(e7#\"$$f7#\"$*f7#\"$,'7#\"$2'7#\"$ 8'7#\"$<'7$\"$>'\"'$=5\"7#\"$J'7$\"$T'\"&***\\7#\"$V'7#\"$Z'7#\"$`'7# \"$f'7#\"$h'7#\"$t'7#\"$x'7#\"$$o7#\"$\"p7#\"$,(7#\"$4(7#\"$>(7#\"$F(7 #\"$L(7#\"$R(7#\"$V(7#\"$^(7#\"$d(7$\"$h(\"%*3'7#\"$p(7#\"$t(7#\"$(y7# \"$(z7#\"$4)7#\"$6)7#\"$@)7#\"$B)7#\"$F)7$\"$H)\"&`H(7#\"$R)7#\"$`)7$ \"$d)\"%do7#\"$f)7#\"$j)7$\"$x)\"(FlV\"7#\"$\"))7#\"$$))7#\"$())7#\"$2 *7#\"$6*7#\"$>*7#\"$H*7#\"$P*7$\"$T*\"%Hv7#\"$Z*7#\"$`*7$\"$n*\"'d#\\& 7#\"$r*7$\"$x*\"'xv')7#\"$$)*7#\"$\"**7#\"$(**" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "nops(LL); select(x->evalb(nops(x)=1),LL); nops( %);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$g\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "7ds7#\"#B7#\"#J7#\"#P7#\"#T7#\"#V7#\"#Z7#\"#`7#\"#f7#\"#h 7#\"#n7#\"#t7#\"#z7#\"#$)7#\"#*)7#\"$,\"7#\"$.\"7#\"$2\"7#\"$4\"7#\"$8 \"7#\"$F\"7#\"$J\"7#\"$P\"7#\"$R\"7#\"$\\\"7#\"$d\"7#\"$j\"7#\"$n\"7# \"$t\"7#\"$\"=7#\"$\">7#\"$$>7#\"$*>7#\"$6#7#\"$B#7#\"$F#7#\"$L#7#\"$T #7#\"$^#7#\"$d#7#\"$j#7#\"$p#7#\"$r#7#\"$$G7#\"$$H7#\"$2$7#\"$6$7#\"$8 $7#\"$<$7#\"$J$7#\"$Z$7#\"$\\$7#\"$`$7#\"$f$7#\"$n$7#\"$t$7#\"$z$7#\"$ $Q7#\"$*Q7#\"$(R7#\"$,%7#\"$4%7#\"$>%7#\"$@%7#\"$L%7#\"$R%7#\"$V%7#\"$ d%7#\"$h%7#\"$j%7#\"$n%7#\"$z%7#\"$([7#\"$*\\7#\"$.&7#\"$4&7#\"$@&7#\" $B&7#\"$T&7#\"$Z&7#\"$d&7#\"$j&7#\"$p&7#\"$x&7#\"$(e7#\"$$f7#\"$*f7#\" $,'7#\"$2'7#\"$8'7#\"$<'7#\"$J'7#\"$V'7#\"$Z'7#\"$`'7#\"$f'7#\"$h'7#\" $t'7#\"$x'7#\"$$o7#\"$\"p7#\"$,(7#\"$4(7#\"$>(7#\"$F(7#\"$L(7#\"$R(7# \"$V(7#\"$^(7#\"$d(7#\"$p(7#\"$t(7#\"$(y7#\"$(z7#\"$4)7#\"$6)7#\"$@)7# \"$B)7#\"$F)7#\"$R)7#\"$`)7#\"$f)7#\"$j)7#\"$\"))7#\"$$))7#\"$())7#\"$ 2*7#\"$6*7#\"$>*7#\"$H*7#\"$P*7#\"$Z*7#\"$`*7#\"$r*7#\"$$)*7#\"$\"**7# \"$(**" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$O\"" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 13 "5.6. Feladat." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "interface(verboseproc=2);" } }{PARA 11 "" 1 "" {XPPMATH 20 "\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "print(mersenne);" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6 #'I\"nG6\"<$I'posintG%*protectedG7#F(6#I\"wGF&6#IaoCopyright~(c)~1992~ by~the~University~of~Waterloo.~All~rights~reserved.GF&F&C%@$0%&nargsG \"\"\"YQ:wrong~number~of~argumentsF&>F,7M\"\"#\"\"$\"\"&\"\"(\"#8\"#< \"#>\"#J\"#h\"#*)\"$2\"\"$F\"\"$@&\"$2'\"%z7\"%.A\"%\"G#\"%\"&,<#\"&4K#\"&(\\W\"&Vi)\"'.06\"'\\?8\"'\"4 ;#\"'Rov\"'L%f)\"((yd7\"(p#)R\"\"(@i(H\"(x8-$\"($fsp\") " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 59 "# A pretest will be done for (h0+c*h)*b^n+ d, where h runs\n" }{MPLTEXT 1 0 59 "# from 0 to H-1 and d in D. All p rime divisors from P0 to\n" }{MPLTEXT 1 0 61 "# P1 will be tried. P0 m ust be odd, and b,c must have prime\n" }{MPLTEXT 1 0 52 "# factors sma ller then P0. The values h, for which\n" }{MPLTEXT 1 0 58 "# (h0+c*h)* b^n+d not divisible with primes from P0 to P1\n" }{MPLTEXT 1 0 34 "# f or all d in D are given back.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 70 "pretest:=proc(h0::nonnegint,H::posint,c::posi nt,b::posint,n::posint,\n" }{MPLTEXT 1 0 40 "D::set(integer),P0::posin t,P1::posint)\n" }{MPLTEXT 1 0 40 "local T,h,p,d,hh,L,nn,bb,cc,bT,cT,i ,j;\n" }{MPLTEXT 1 0 19 "T:=array(0..H-1);\n" }{MPLTEXT 1 0 36 "for h \+ from 0 to H-1 do T[h]:=1 od;\n" }{MPLTEXT 1 0 69 "bT:=array(0..b-1); \+ # table of inverses for b\n" }{MPLTEXT 1 0 37 "f or i from 0 to b-1 do bT[i]:=0 od;\n" }{MPLTEXT 1 0 24 "for i from 0 t o b-1 do\n" }{MPLTEXT 1 0 26 " for j from 0 to b-1 do\n" }{MPLTEXT 1 0 41 " if irem(i*j+1,b)=0 then bT[i]:=j fi\n" }{MPLTEXT 1 0 6 " od \n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 69 "cT:=array(0..c-1); \+ # table of inverses for c\n" }{MPLTEXT 1 0 37 "for i from 0 to c-1 do cT[i]:=0 od;\n" }{MPLTEXT 1 0 24 "for i from 0 to c- 1 do\n" }{MPLTEXT 1 0 26 " for j from 0 to c-1 do\n" }{MPLTEXT 1 0 41 " if irem(i*j+1,c)=0 then cT[i]:=j fi\n" }{MPLTEXT 1 0 6 " od\n " }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 29 "for p from P0 to P1 by 2 d o\n" }{MPLTEXT 1 0 22 " if isprime(p) then\n" }{MPLTEXT 1 0 22 " n n:=modp(n,p-1);\n" }{MPLTEXT 1 0 32 " bb:=(bT[modp(p,b)]*p+1)/b;\n" }{MPLTEXT 1 0 25 " bb:=modp(bb&^nn,p);\n" }{MPLTEXT 1 0 32 " cc :=(cT[modp(p,c)]*p+1)/c;\n" }{MPLTEXT 1 0 19 " for d in D do\n" } {MPLTEXT 1 0 34 " hh:=modp((-d*bb-h0)*cc,p);\n" }{MPLTEXT 1 0 48 " for h from hh to H-1 by p do T[h]:=0; od\n" }{MPLTEXT 1 0 8 " \+ od\n" }{MPLTEXT 1 0 6 " fi\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 8 "L:=[];\n" }{MPLTEXT 1 0 25 "for h from 0 to H-1 do \n" }{MPLTEXT 1 0 34 " if T[h]=1 then L:=[op(L),h] fi\n" }{MPLTEXT 1 0 10 "od; L en d;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6*'I#h0G6\"I*nonnegintG%*protect edG'I\"HGF&I'posintGF('I\"cGF&F+'I\"bGF&F+'I\"nGF&F+'I\"DGF&-I$setGF(6 #I(integerGF('I#P0GF&F+'I#P1GF&F+6/I\"TGF&I\"hGF&I\"pGF&I\"dGF&I#hhGF& I\"LGF&I#nnGF&I#bbGF&I#ccGF&I#bTGF&I#cTGF&I\"iGF&I\"jGF&F&F&C.>F=-I&ar rayGF(6#;\"\"!,&F*\"\"\"FR!\"\"?(F>FPFRFQI%trueGF(>&F=6#F>FR>FF-FM6#;F P,&F/FRFRFS?(FHFPFRFgnFU>&FF6#FHFP?(FHFPFRFgnFU?(FIFPFRFgnFU@$/-I%irem GF(6$,&*&FHFRFIFRFRFRFRF/FP>FjnFI>FG-FM6#;FP,&F-FRFRFS?(FHFPFRFjoFU>&F GF[oFP?(FHFPFRFjoFU?(FIFPFRFjoFU@$/-Fao6$FcoF-FP>F]pFI?(F?F9\"\"#F;FU@ $-I(isprimeG6$F(I(_syslibGF&6#F?C'>FC-I%modpGF(6$F1,&F?FRFRFS>FD*&,&*& &FF6#-F`q6$F?F/FRF?FRFRFRFRFRF/FS>FD-F`q6$-I#&^GF&6$FDFCF?>FE*&,&*&&FG 6#-F`q6$F?F-FRF?FRFRFRFRFRF-FS?&F@F3FUC$>FA-F`q6$*&,&*&F@FRFDFRFSF%FSF RFEFRF??(F>FAF?FQFU>FWFP>FB7\"?(F>FPFRFQFU@$/FWFR>FB7$-I#opGF(6#FBF>FB F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 62 "# This procedure do the Proth test for the number n=h*2^m+1.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 59 "proth:=proc(h::posint,m::posin t) local a,b,n; n:=h*2^m+1;\n" }{MPLTEXT 1 0 60 "if h>=2^m then error \+ \"first parmeter is too large\",h fi;\n" }{MPLTEXT 1 0 69 "if not type (h,odd) then error \"first parameter must be odd\",h fi;\n" }{MPLTEXT 1 0 36 "if m=1 or m=2 then return true fi;\n" }{MPLTEXT 1 0 62 "if m=3 then if h=5 then return true else return false fi fi;\n" }{MPLTEXT 1 0 55 "# 2 is not a quadratic residue mod n, we start with 3\n" } {MPLTEXT 1 0 50 "# (2*a|n)=(a|n), hence enough to try odd bases a\n" } {MPLTEXT 1 0 22 "for a from 3 by 2 do\n" }{MPLTEXT 1 0 35 " b:=2&^m m od a; b:=h*b+1 mod a; \n" }{MPLTEXT 1 0 49 " # by quadratic reciproci ty, (a|n)=(n|a)=(b|a)\n" }{MPLTEXT 1 0 38 " b:=modp(2&^m,a); b:=modp( h*b+1,a);\n" }{MPLTEXT 1 0 42 " if jacobi(b,a)=0 then return false fi ;\n" }{MPLTEXT 1 0 26 " if jacobi(b,a)=-1 then\n" }{MPLTEXT 1 0 72 " \+ if modp(a&^((n-1)/2),n)=n-1 then return true else return false fi; \n" }{MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 7 "od end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6$'I\"hG6\"I'posintG%*protectedG'I\"mGF&F'6%I\"aGF &I\"bGF&I\"nGF&F&F&C(>F.,&*&F%\"\"\")\"\"#F*F3F3F3F3@$1F4F%Y6$QF--I$modGF&6$-I#&^GF&6$F5F*F,>F--FV6$,&*&F%F3F-F3F3F3 F3F,>F--I%modpGF(FW>F--F\\oFgn@$/-_I*numtheoryG6$F(I(_syslibGF&I'jacob iGF&6$F-F,\"\"!FP@$/Fao!\"\"@%/-F\\o6$-FY6$F,,&*&#F3F5F3F.F3F3FdpF[pF. ,&F.F3F3F[pFHFPF&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n " }{MPLTEXT 1 0 57 "# After a pretest the Proth test is used to find p rimes\n" }{MPLTEXT 1 0 57 "# (h0+c*h)*2^n+1, where h runs from 0 to H- 1. All prime\n" }{MPLTEXT 1 0 62 "# divisors from interval P will be t ried during the pretest.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 78 "prothprimes:=proc(h0::posint,c::posint,H::posint,n: :posint,P::range(posint))\n" }{MPLTEXT 1 0 15 "local h,L,LL;\n" } {MPLTEXT 1 0 55 "L:=pretest(h0,H,c,2,n,\{1\},op(1,P),op(2,P)); LL:=[]; \n" }{MPLTEXT 1 0 15 "for h in L do\n" }{MPLTEXT 1 0 45 " if proth(h0 +c*h,n) then LL:=[op(LL),h] fi\n" }{MPLTEXT 1 0 19 "od; LL end ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6''I#h0G6\"I'posintG%*protectedG' I\"cGF&F''I\"HGF&F''I\"nGF&F''I\"PGF&-I&rangeGF(6#F'6%I\"hGF&I\"LGF&I# LLGF&F&F&C&>F6-I(pretestGF&6*F%F,F*\"\"#F.<#\"\"\"-I#opGF(6$F?F0-FA6$F =F0>F77\"?&F5F6I%trueGF(@$-I&prothGF&6$,&F%F?*&F*F?F5F?F?F.>F77$-FA6#F 7F5F7F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "prothprimes( 3,30,3000,2000,7..1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7)\"$=&\"$\" f\"$h)\"%%H\"\"%]:\"%zG\"%@H" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 206 13 "5.8. Feladat." }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 13 "5.9. Felad at." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 53 "# This procedure calculate the \+ Lucas sequence terms\n" }{MPLTEXT 1 0 48 "# [V[n],V[n+1]]. If the para meter N also given\n" }{MPLTEXT 1 0 60 "# then the calculations are do ne mod N. Here V[n]=a^n+b^n,\n" }{MPLTEXT 1 0 42 "# where a,b are the \+ roots of x^2-Px+Q=0.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 3 " \n" } {MPLTEXT 1 0 39 "lucasV:=proc(n,P,Q,N) local L,B,i,Qk;\n" }{MPLTEXT 1 0 23 "B:=convert(n,base,2);\n" }{MPLTEXT 1 0 8 "Qk:=1;\n" }{MPLTEXT 1 0 27 "if nargs=3 then L:=[2,P];\n" }{MPLTEXT 1 0 36 " for i from nops (B) to 1 by -1 do\n" }{MPLTEXT 1 0 20 " if B[i]=0 then\n" }{MPLTEXT 1 0 50 " L:=[L[1]^2-2*Qk,L[2]*L[1]-P*Qk]; Qk:=Qk^2;\n" }{MPLTEXT 1 0 10 " else\n" }{MPLTEXT 1 0 54 " L:=[L[2]*L[1]-P*Qk,L[2]^2 -2*Q*Qk]; Qk:=Qk^2*Q;\n" }{MPLTEXT 1 0 9 " fi;\n" }{MPLTEXT 1 0 39 " od; \n" }{MPLTEXT 1 0 28 "else L:=[2 mod N,P mod N];\n" }{MPLTEXT 1 0 36 " for i from nops(B) to 1 by -1 \+ do\n" }{MPLTEXT 1 0 20 " if B[i]=0 then\n" }{MPLTEXT 1 0 70 " \+ L:=[L[1]&^2-2*Qk mod N,L[2]*L[1]-P*Qk mod N]; Qk:=Qk&^2 mod N;\n" } {MPLTEXT 1 0 10 " else\n" }{MPLTEXT 1 0 74 " L:=[L[2]*L[1]-P*Q k mod N,L[2]&^2-2*Q*Qk mod N]; Qk:=Qk&^2*Q mod N;\n" }{MPLTEXT 1 0 9 " fi;\n" }{MPLTEXT 1 0 7 " od;\n" }{MPLTEXT 1 0 10 "fi; L end;" }} {PARA 11 "" 1 "" {XPPMATH 20 "f*6&I\"nG6\"I\"PGF%I\"QGF%I\"NGF%6&I\"LG F%I\"BGF%I\"iGF%I#QkGF%F%F%C&>F+-I(convertG%*protectedG6%F$I%baseGF%\" \"#>F-\"\"\"@%/%&nargsG\"\"$C$>F*7$F5F&?(F,-I%nopsGF26#F+!\"\"F7I%true GF2@%/&F+6#F,\"\"!C$>F*7$,&*$)&F*6#F7F5F7F7*&F5F7F-F7FC,&*&&F*6#F5F7FP F7F7*&F&F7F-F7FC>F-*$)F-F5F7C$>F*7$FS,&*$)FUF5F7F7*(F5F7F'F7F-F7FC>F-* &FZF7F'F7C$>F*7$-I$modGF%6$F5F(-Fbo6$F&F(?(F,F@FCF7FD@%FFC$>F*7$-Fbo6$ ,&-I#&^GF%6$FPF5F7FRFCF(-Fbo6$FSF(>F--Fbo6$-F_p6$F-F5F(C$>F*7$Fap-Fbo6 $,&-F_p6$FUF5F7F[oFCF(>F--Fbo6$*&FfpF7F'F7F(F*F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 64 "# This procedure ca lculate a^h+a^(-h) for a unit a=r+s*sqrt(D)\n" }{MPLTEXT 1 0 62 "# wit h norm 1. Here r,s rational numbers, D must be a square\n" }{MPLTEXT 1 0 50 "# free integer. All computations are done mod N.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 41 "rieselsetup:=proc(r ,s,D,h,N) local P,a;\n" }{MPLTEXT 1 0 17 "a:=r+s*sqrt(D);\n" }{MPLTEXT 1 0 43 "P:=r+s*sqrt(D)+(r-s*sqrt(D))/(r^2-s^2*D);\n" }{MPLTEXT 1 0 64 "if not type(P,integer) then ERROR(a+1/a, `not an integer`) fi;\n" }{MPLTEXT 1 0 24 "lucasV(h,P,1,N)[1]; end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6'I\"rG6\"I\"sGF%I\"DGF%I\"hGF%I\"NGF%6$I\"PGF%I\"aGF%F %F%C&>F,,&F$\"\"\"*&F&F0-I%sqrtGF%6#F'F0F0>F+,(F$F0F1F0*&,&F$F0F1!\"\" F0,&*$)F$\"\"#F0F0*&)F&F=F0F'F0F9F9F0@$4-I%typeG%*protectedG6$F+I(inte gerGFD-I&ERRORGFD6$,&F,F0*$F,F9F0I/not~an~integerGF%&-I'lucasVGF%6&F(F +F0F)6#F0F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" } {MPLTEXT 1 0 66 "# This procedure use iteration v<-v^2-2 starting with v=a^h+a^-h\n" }{MPLTEXT 1 0 59 "# where the quadratic unit a=r+s*sqrt (D) is given for the\n" }{MPLTEXT 1 0 60 "# primality testing of h*2^n -1. Here n>1 and h<2^n is odd.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 38 "riesel:=proc(h,n,r,s,D) local N,v,i;\n" } {MPLTEXT 1 0 61 "if h>=2^n then error \"first parameter is too large\" ,h fi;\n" }{MPLTEXT 1 0 69 "if type(h,even) then error \"first paramet er have to be odd\",h fi;\n" }{MPLTEXT 1 0 59 "if n<2 then error \"sec ond parameter is too small\",h fi;\n" }{MPLTEXT 1 0 13 "N:=h*2^n-1;\n" }{MPLTEXT 1 0 28 "v:=rieselsetup(r,s,D,h,N);\n" }{MPLTEXT 1 0 36 "for i to n-2 do v:=v^2-2 mod N od;\n" }{MPLTEXT 1 0 16 "evalb(v=0); end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6'I\"hG6\"I\"nGF%I\"rGF%I\"sGF%I\"D GF%6%I\"NGF%I\"vGF%I\"iGF%F%F%C)@$1)\"\"#F&F$Y6$Q=first~parameter~is~t oo~largeF%F$@$-I%typeG%*protectedG6$F$I%evenGF9Y6$Q?first~parameter~ha ve~to~be~oddF%F$@$2F&F2Y6$Q>second~parameter~is~too~smallF%F$>F+,&*&F$ \"\"\"F1FGFGFG!\"\">F,-I,rieselsetupGF%6'F'F(F)F$F+?(F-FGFG,&F&FGF2FHI %trueGF9>F,-I$modGF%6$,&*$)F,F2FGFGF2FHF+-I&evalbGF96#/F,\"\"!F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 53 "# A fter a pretest the Riesel test with D=5 and unit\n" }{MPLTEXT 1 0 59 " # (1+sqrt(5))^2/4 is used to find primes (h0+30*h)*2^n-1,\n" }{MPLTEXT 1 0 59 "# where h runs from 0 to H-1. Only the pairs [3,0],[9,0],\n" }{MPLTEXT 1 0 58 "# [23,0],[29,0],[7,1],[9,1],[19,1],[27,1],[11,2],[17 ,2],\n" }{MPLTEXT 1 0 47 "# [21,2],[27,2],[1,3],[3,3],[13,3],[21,3] fo r\n" }{MPLTEXT 1 0 56 "# [h0 mod 30,n mod 4] gives combinations for wh ich the\n" }{MPLTEXT 1 0 56 "# test may used and N is not divisible by 2,3,5, hence\n" }{MPLTEXT 1 0 56 "# this procedure should be used onl y with these pairs.\n" }{MPLTEXT 1 0 55 "# All prime divisors until P \+ will be tried during the\n" }{MPLTEXT 1 0 12 "# pretest.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 43 "rieselsqrt5:=proc(h 0,H,n,P) local h,L,LL;\n" }{MPLTEXT 1 0 45 "L:=pretest(h0,H,30,2,n,\{- 1\},7,P); LL:=[];\n" }{MPLTEXT 1 0 15 "for h in L do\n" }{MPLTEXT 1 0 57 " if riesel(h0+30*h,n,3/2,1/2,5) then LL:=[op(LL),h] fi\n" } {MPLTEXT 1 0 19 "od; LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 " f*6&I#h0G6\"I\"HGF%I\"nGF%I\"PGF%6%I\"hGF%I\"LGF%I#LLGF%F%F%C&>F+-I(pr etestGF%6*F$F&\"#I\"\"#F'<#!\"\"\"\"(F(>F,7\"?&F*F+I%trueG%*protectedG @$-I'rieselGF%6',&F$\"\"\"*&F2FAF*FAFAF'#\"\"$F3#FAF3\"\"&>F,7$-I#opGF ;6#F,F*F,F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "rieselsq rt5(3,3000,2000,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7.\"$$>\"$8(\" $I(\"%k7\"%P8\"%\\8\"%#R\"\"%#\\\"\"%7:\"%[@\"%HG\"%uH" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 12 "5.10. Ikerpr" }{TEXT 206 8 "\303\255" } {TEXT 206 4 "mek." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 58 "# This filter left onl y those h's from the list L in the\n" }{MPLTEXT 1 0 66 "# resulting li st for which (h0+c*h)*2^n+d is base-2 pseudoprime.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 99 "prob:=proc(h0::nonnegint, c::posint,n::posint,d::integer,L::list(nonnegint)) local LL,h,N; LL:=[ ];\n" }{MPLTEXT 1 0 15 "for h in L do\n" }{MPLTEXT 1 0 22 " N:=(h0+c* h)*2^n+d;\n" }{MPLTEXT 1 0 48 " if modp(3&^(N-1),N)=1 then LL:=[op(LL ),h] fi\n" }{MPLTEXT 1 0 11 "od; LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6''I#h0G6\"I*nonnegintG%*protectedG'I\"cGF&I'posintGF('I\"nGF&F+ 'I\"dGF&I(integerGF('I\"LGF&-I%listGF(6#F'6%I#LLGF&I\"hGF&I\"NGF&F&F&C %>F77\"?&F8F2I%trueGF(C$>F9,&*&,&F%\"\"\"*&F*FDF8FDFDFD)\"\"#F-FDFDF/F D@$/-I%modpGF(6$-I#&^GF&6$\"\"$,&F9FDFD!\"\"F9FD>F77$-I#opGF(6#F7F8F7F &F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 58 "# This filter left only those h's from the list L in the\n" } {MPLTEXT 1 0 60 "# resulting list for which (h0+c*h)*2^n+1 is prime. I t use\n" }{MPLTEXT 1 0 19 "# the Proth test.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 43 "exactplus:=proc(h0,c,n,L) local LL,h,a,S;\n" }{MPLTEXT 1 0 9 "LL:=[];\n" }{MPLTEXT 1 0 15 "for h in L do\n" }{MPLTEXT 1 0 45 " if proth(h0+c*h,n) then LL:=[op(LL),h] fi\n " }{MPLTEXT 1 0 11 "od; LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I #h0G6\"I\"cGF%I\"nGF%I\"LGF%6&I#LLGF%I\"hGF%I\"aGF%I\"SGF%F%F%C%>F*7\" ?&F+F(I%trueG%*protectedG@$-I&prothGF%6$,&F$\"\"\"*&F&F9F+F9F9F'>F*7$- I#opGF36#F*F+F*F%F%F%" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 14 "5.11. Feladat." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 58 "# This filter left only those \+ h's from the list L in the\n" }{MPLTEXT 1 0 54 "# resulting list for w hich (h0+30*h)*2^n-1 is prime.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 38 "exactminus:=proc(h0,n,L) local LL,h;\n" } {MPLTEXT 1 0 9 "LL:=[];\n" }{MPLTEXT 1 0 15 "for h in L do\n" } {MPLTEXT 1 0 57 " if riesel(h0+30*h,n,3/2,1/2,5) then LL:=[op(LL),h] \+ fi\n" }{MPLTEXT 1 0 11 "od; LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f *6%I#h0G6\"I\"nGF%I\"LGF%6$I#LLGF%I\"hGF%F%F%C%>F)7\"?&F*F'I%trueG%*pr otectedG@$-I'rieselGF%6',&F$\"\"\"*&\"#IF6F*F6F6F&#\"\"$\"\"##F6F;\"\" &>F)7$-I#opGF06#F)F*F)F%F%F%" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 14 "5.12. Feladat." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 51 "# After a pretest the probabilistic test for N-1,\n" }{MPLTEXT 1 0 62 "# the Riesel test wi th D=5 and unit (1+sqrt(5))^2/4 for N-1,\n" }{MPLTEXT 1 0 62 "# the pr obabilistic test for N+1, and the Proth test for N+1\n" }{MPLTEXT 1 0 58 "# is used to find twin primes N+-1 with N=(h0+30*h)*2^n,\n" } {MPLTEXT 1 0 46 "# where h runs from 0 to H-1. Only the pairs\n" } {MPLTEXT 1 0 60 "# [3,0],[9,1],[21,3],[27,2], for [h0 mod 30,n mod 4] \+ gives\n" }{MPLTEXT 1 0 55 "# combinations for which the Riesel test ma y used and\n" }{MPLTEXT 1 0 56 "# N+-1 is not divisible by 2,3,5, henc e this procedure\n" }{MPLTEXT 1 0 60 "# should be used only with these pairs. All prime divisors\n" }{MPLTEXT 1 0 45 "# until P will be trie d during the pretest.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 32 "twin:=proc(h0,H,n,P) local LL;\n" }{MPLTEXT 1 0 40 "L L:=pretest(h0,H,30,2,n,\{1,-1\},7,P);\n" }{MPLTEXT 1 0 18 "print(nops( LL));\n" }{MPLTEXT 1 0 26 "LL:=prob(h0,30,n,-1,LL);\n" }{MPLTEXT 1 0 18 "print(nops(LL));\n" }{MPLTEXT 1 0 26 "LL:=exactminus(h0,n,LL);\n" }{MPLTEXT 1 0 18 "print(nops(LL));\n" }{MPLTEXT 1 0 25 "LL:=prob(h0,30 ,n,1,LL);\n" }{MPLTEXT 1 0 18 "print(nops(LL));\n" }{MPLTEXT 1 0 27 "L L:=exactplus(h0,30,n,LL)\n" }{MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I#h0G6\"I\"HGF%I\"nGF%I\"PGF%6#I#LLGF%F%F%C+>F*-I(pre testGF%6*F$F&\"#I\"\"#F'<$!\"\"\"\"\"\"\"(F(-I&printG%*protectedG6#-I% nopsGF8F)>F*-I%probGF%6'F$F0F'F3F*F6>F*-I+exactminusGF%6%F$F'F*F6>F*-F >6'F$F0F'F4F*F6>F*-I*exactplusGF%6&F$F0F'F*F%F%F%" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 23 "twin(3,20000,400,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"%R<" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#s" }}{PARA 11 " " 1 "" {XPPMATH 20 "\"#s" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"\"" }} {PARA 11 "" 1 "" {XPPMATH 20 "7#\"&6k\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 56 "# This is a test for measuremen t densities and times. \n" }{MPLTEXT 1 0 59 "# First a pretests is don e for N+-1 where N=(h0+30*h)*2^n\n" }{MPLTEXT 1 0 57 "# and h runs fro m 0 to H-1. The pretest is repeated for\n" }{MPLTEXT 1 0 58 "# prime l imit P=2^e where e is integer from the interval\n" }{MPLTEXT 1 0 53 "# eint. The time and the remaining number after the\n" }{MPLTEXT 1 0 55 "# pretest is reported, and p*ln(P)^2 also calculated,\n" }{MPLTEXT 1 0 48 "# where p is the relative frequency of numbers\n" }{MPLTEXT 1 0 54 "# passed the pretest. The result of the last pretest\n" } {MPLTEXT 1 0 56 "# became the input of a probabilistic test for N-1 an d\n" }{MPLTEXT 1 0 59 "# the result of this will be the input of the R iesel test\n" }{MPLTEXT 1 0 58 "# with D=5 and unit (1+sqrt(5))^2/4 fo r N-1. The time of\n" }{MPLTEXT 1 0 59 "# the probabilistic test and t he result of booth tests is\n" }{MPLTEXT 1 0 52 "# reported. The proba bilistic test for N+1 and the\n" }{MPLTEXT 1 0 48 "# Proth test for N+ 1 also done. Only the pairs\n" }{MPLTEXT 1 0 59 "# [3,0],[9,1],[21,3], [27,2] for [h0 mod 30,n mod 4] gives\n" }{MPLTEXT 1 0 42 "# combinatio ns for which the Riesel test\n" }{MPLTEXT 1 0 38 "# may used and N+-1 \+ is not divisible\n" }{MPLTEXT 1 0 34 "# by 2,3,5, hence this procedure \n" }{MPLTEXT 1 0 41 "# should be used only with these pairs.\n" } {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 48 "twintest:= proc(h0,H,n,eint) local e,p,P,L,t,N;\n" }{MPLTEXT 1 0 42 "print(`Twint est; h0=`,h0,`H=`,H,`n=`,n);\n" }{MPLTEXT 1 0 19 "N:=(h0+15*H)*2^n;\n" }{MPLTEXT 1 0 28 "print(`Pretest for N+-1`);\n" }{MPLTEXT 1 0 40 "for e from op(1,eint) to op(2,eint) do\n" }{MPLTEXT 1 0 11 " P:=2^e;\n" }{MPLTEXT 1 0 14 " t:=time();\n" }{MPLTEXT 1 0 41 " L:=pretest(h0,H, 30,2,n,\{1,-1\},7,P);\n" }{MPLTEXT 1 0 16 " t:=time()-t;\n" }{MPLTEXT 1 0 24 " p:=evalf(nops(L)/H);\n" }{MPLTEXT 1 0 68 " print(`P=`,2^e, `p=`,p,`p*ln(P)^2=`,evalf((ln(P))^2*p),`time=`,t)\n" }{MPLTEXT 1 0 5 " od;\n" }{MPLTEXT 1 0 25 "print(`Test for N+-1`);\n" }{MPLTEXT 1 0 12 " t:=time();\n" }{MPLTEXT 1 0 24 "L:=prob(h0,30,n,-1,L);\n" }{MPLTEXT 1 0 24 "L:=exactminus(h0,n,L);\n" }{MPLTEXT 1 0 23 "L:=prob(h0,30,n,1,L) ;\n" }{MPLTEXT 1 0 26 "L:=exactplus(h0,30,n,L);\n" }{MPLTEXT 1 0 14 "t :=time()-t;\n" }{MPLTEXT 1 0 22 "p:=evalf(nops(L)/H);\n" }{MPLTEXT 1 0 58 "print(`p=`,p,`p*ln(N)^2=`,evalf((ln(N))^2*p),`time=`,t);\n" } {MPLTEXT 1 0 3 "L\n" }{MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I#h0G6\"I\"HGF%I\"nGF%I%eintGF%6(I\"eGF%I\"pGF%I\"PGF %I\"LGF%I\"tGF%I\"NGF%F%F%C0-I&printG%*protectedG6(I.Twintest;~h0=GF%F $I#H=GF%F&I#n=GF%F'>F/*&,&F$\"\"\"*&\"#:F;F&F;F;F;)\"\"#F'F;-F26#I1Pre test~for~N+-1GF%?(F*-I#opGF36$F;F(F;-FE6$F?F(I%trueGF3C(>F,)F?F*>F.-I% timeGF3F%>F--I(pretestGF%6*F$F&\"#IF?F'<$!\"\"F;\"\"(F,>F.,&FNF;F.FV>F +-I&evalfGF36#*&-I%nopsGF36#F-F;F&FV-F26*I#P=GF%FLI#p=GF%F+I+p*ln(P)^2 =GF%-Ffn6#*&)-I#lnG6$F3I(_syslibGF%6#F,F?F;F+F;I&time=GF%F.-F26#I.Test ~for~N+-1GF%FM>F--I%probGF%6'F$FTF'FVF->F--I+exactminusGF%6%F$F'F->F-- F`p6'F$FTF'F;F->F--I*exactplusGF%6&F$FTF'F-FXFZ-F26(F_oF+I+p*ln(N)^2=G F%-Ffn6#*&)-Ffo6#F/F?F;F+F;FjoF.F-F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "twintest(3,20000,400,3..15);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6(I.Twintest;~h0=G6\"\"\"$I#H=GF$\"&++#I#n=GF$\"$+%" }} {PARA 11 "" 1 "" {XPPMATH 20 "I1Pretest~for~N+-1G6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"\")I#p=GF$$\"+++]Ur!#5I+p*ln(P)^2=GF$$\"+( 3s%)3$!\"*I&time=GF$$\"%Z[!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P= G6\"\"#;I#p=GF$$\"+++]W\\!#5I+p*ln(P)^2=GF$$\"+%))f4!Q!\"*I&time=GF$$ \"%2C!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"#KI#p=GF$$\"+++ ])4$!#5I+p*ln(P)^2=GF$$\"+g\"4)I#p=GF$$\"++++l^!#6I+p*ln(P)^2=GF$$\"+\"H -Q>%!\"*I&time=GF$$\"$N'!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6 \"\"&%Q;I#p=GF$$\"++++IW!#6I+p*ln(P)^2=GF$$\"+IunrT!\"*I&time=GF$$\"$$ ))!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"&oF$I#p=GF$$\"++++ gQ!#6I+p*ln(P)^2=GF$$\"+FWtsT!\"*I&time=GF$$\"%/9!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "I.Test~for~N+-1G6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6(I#p=G6\"$\"+++++]!#9I+p*ln(N)^2=GF$$\"+?IC,U!\"*I&time=GF$$\"%J8!\"$ " }}{PARA 11 "" 1 "" {XPPMATH 20 "7#\"&6k\"" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 23 "5.13. Sophie Germain pr" }{TEXT 206 8 "\303\255" } {TEXT 206 4 "mek." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 64 "# A pretest will be do ne for Sophie Germain prime candidates, \n" }{MPLTEXT 1 0 68 "# to be \+ more exact, for (h0+c*h)*b^n-1 and for (h0+c*h)*b^(n+1)-1,\n" } {MPLTEXT 1 0 64 "# where h runs from 0 to H-1. All prime divisors from P0 to P1\n" }{MPLTEXT 1 0 66 "# will be tried. P0 must be odd, and b, c must have prime factors\n" }{MPLTEXT 1 0 68 "# smaller then P0. The \+ values h0+c*h, for which (h0+c*h)*b^n-1 and\n" }{MPLTEXT 1 0 66 "# (h0 +c*h)*b^(n+1)-1 are not divisible with primes from P0 to P1\n" } {MPLTEXT 1 0 19 "# are given back.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 62 "presophie:=proc(h0::nonnegint,H::posint,c ::posint,b::posint,\n" }{MPLTEXT 1 0 34 "n::posint,P0::posint,P1::posi nt)\n" }{MPLTEXT 1 0 42 "local T,h,p,hh,L,nn,bb,bbb,cc,bT,cT,i,j;\n" } {MPLTEXT 1 0 19 "T:=array(0..H-1);\n" }{MPLTEXT 1 0 36 "for h from 0 t o H-1 do T[h]:=1 od;\n" }{MPLTEXT 1 0 69 "bT:=array(0..b-1); \+ # table of inverses for b\n" }{MPLTEXT 1 0 37 "for i fro m 0 to b-1 do bT[i]:=0 od;\n" }{MPLTEXT 1 0 24 "for i from 0 to b-1 do \n" }{MPLTEXT 1 0 65 " for j from 0 to b-1 do if irem(i*j+1,b)=0 then bT[i]:=j fi od\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 69 "cT:=array (0..c-1); # table of inverses for c\n" } {MPLTEXT 1 0 37 "for i from 0 to c-1 do cT[i]:=0 od;\n" }{MPLTEXT 1 0 24 "for i from 0 to c-1 do\n" }{MPLTEXT 1 0 65 " for j from 0 to c-1 \+ do if irem(i*j+1,c)=0 then cT[i]:=j fi od\n" }{MPLTEXT 1 0 5 "od;\n" } {MPLTEXT 1 0 29 "for p from P0 to P1 by 2 do\n" }{MPLTEXT 1 0 22 " if isprime(p) then\n" }{MPLTEXT 1 0 30 " cc:=(cT[p mod c]*p+1)/c;\n" }{MPLTEXT 1 0 22 " nn:=modp(n,p-1);\n" }{MPLTEXT 1 0 32 " bb:=(b T[modp(p,b)]*p+1)/b;\n" }{MPLTEXT 1 0 26 " bbb:=modp(bb&^nn,p);\n" }{MPLTEXT 1 0 30 " hh:=modp((bbb-h0)*cc,p);\n" }{MPLTEXT 1 0 47 " \+ for h from hh to H-1 by p do T[h]:=0; od;\n" }{MPLTEXT 1 0 26 " b bb:=modp(bbb*bb,p);\n" }{MPLTEXT 1 0 30 " hh:=modp((bbb-h0)*cc,p); \n" }{MPLTEXT 1 0 45 " for h from hh to H-1 by p do T[h]:=0 od\n" } {MPLTEXT 1 0 6 " fi\n" }{MPLTEXT 1 0 12 "od; L:=[];\n" }{MPLTEXT 1 0 25 "for h from 0 to H-1 do \n" }{MPLTEXT 1 0 34 " if T[h]=1 then L:=[ op(L),h] fi\n" }{MPLTEXT 1 0 18 "od; L end;" }}{PARA 11 "" 1 " " {XPPMATH 20 "f*6)'I#h0G6\"I*nonnegintG%*protectedG'I\"HGF&I'posintGF ('I\"cGF&F+'I\"bGF&F+'I\"nGF&F+'I#P0GF&F+'I#P1GF&F+6/I\"TGF&I\"hGF&I\" pGF&I#hhGF&I\"LGF&I#nnGF&I#bbGF&I$bbbGF&I#ccGF&I#bTGF&I#cTGF&I\"iGF&I \"jGF&F&F&C.>F7-I&arrayGF(6#;\"\"!,&F*\"\"\"FL!\"\"?(F8FJFLFKI%trueGF( >&F76#F8FL>F@-FG6#;FJ,&F/FLFLFM?(FBFJFLFWFO>&F@6#FBFJ?(FBFJFLFWFO?(FCF JFLFWFO@$/-I%iremGF(6$,&*&FBFLFCFLFLFLFLF/FJ>FZFC>FA-FG6#;FJ,&F-FLFLFM ?(FBFJFLFdoFO>&FAFenFJ?(FBFJFLFdoFO?(FCFJFLFdoFO@$/-F[o6$F]oF-FJ>FgoFC ?(F9F3\"\"#F5FO@$-I(isprimeG6$F(I(_syslibGF&6#F9C+>F?*&,&*&&FA6#-I$mod GF&6$F9F-FLF9FLFLFLFLFLF-FM>F<-I%modpGF(6$F1,&F9FLFLFM>F=*&,&*&&F@6#-F cq6$F9F/FLF9FLFLFLFLFLF/FM>F>-Fcq6$-I#&^GF&6$F=FF:-Fcq6$*&,&F>FLF% FMFLF?FLF9?(F8F:F9FKFO>FQFJ>F>-Fcq6$*&F>FLF=FLF9FdrFir>F;7\"?(F8FJFLFK FO@$/FQFL>F;7$-I#opGF(6#F;F8F;F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 62 "# After a pretest the probabili stic test for N-1, the Riesel\n" }{MPLTEXT 1 0 55 "# test with D=5 and unit (1+sqrt(5))^2/4 for N-1, the\n" }{MPLTEXT 1 0 63 "# probabilisti c test for 2*N-1, and the Riesel test for 2*N-1\n" }{MPLTEXT 1 0 53 "# with D=5 and unit (1+sqrt(5))^2/4 is used to find\n" }{MPLTEXT 1 0 60 "# Sophie Germain primes with N=(h0+30*h)*2^n, where h runs\n" } {MPLTEXT 1 0 61 "# from 0 to H-1. Only h0=9 and n mod 4=0 used; in thi s case\n" }{MPLTEXT 1 0 63 "# the Riesel test can be used and N-1, 2*N -1 is not divisible\n" }{MPLTEXT 1 0 63 "# by 2,3,5 hence this procedu re should be used only with this\n" }{MPLTEXT 1 0 61 "# pair. All prim e divisors until P will be tried during the\n" }{MPLTEXT 1 0 12 "# pre test.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 41 " sophiegermain:=proc(h0,H,n,P) local LL;\n" }{MPLTEXT 1 0 33 "LL:=preso phie(h0,H,30,2,n,7,P);\n" }{MPLTEXT 1 0 18 "print(nops(LL));\n" } {MPLTEXT 1 0 26 "LL:=prob(h0,30,n,-1,LL);\n" }{MPLTEXT 1 0 18 "print(n ops(LL));\n" }{MPLTEXT 1 0 26 "LL:=exactminus(h0,n,LL);\n" }{MPLTEXT 1 0 18 "print(nops(LL));\n" }{MPLTEXT 1 0 28 "LL:=prob(h0,30,n+1,-1,LL );\n" }{MPLTEXT 1 0 18 "print(nops(LL));\n" }{MPLTEXT 1 0 28 "LL:=exac tminus(h0,n+1,LL);\n" }{MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I#h0G6\"I\"HGF%I\"nGF%I\"PGF%6#I#LLGF%F%F%C+>F*-I*pre sophieGF%6)F$F&\"#I\"\"#F'\"\"(F(-I&printG%*protectedG6#-I%nopsGF5F)>F *-I%probGF%6'F$F0F'!\"\"F*F3>F*-I+exactminusGF%6%F$F'F*F3>F*-F;6'F$F0, &F'\"\"\"FFFFF=F*F3>F*-F@6%F$FEF*F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "sophiegermain(9,20000,400,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"%P<" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#p" }}{PARA 11 " " 1 "" {XPPMATH 20 "\"#p" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"#" }} {PARA 11 "" 1 "" {XPPMATH 20 "7$\"%.G\"%*G'" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 12 "5.14. Ikerpr" }{TEXT 206 8 "\303\255" }{TEXT 206 26 " m, amely Sophie Germain pr" }{TEXT 206 8 "\303\255" }{TEXT 206 5 "m is ." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 48 "# This part contains some speci al calculations\n" }{MPLTEXT 1 0 43 "# which are useful for search of \+ primes N\n" }{MPLTEXT 1 0 42 "# for which N+2 and 2*N+1 are prime too. \n" }{MPLTEXT 1 0 43 "# We try to find p in the form N=h*2^e-1.\n" } {MPLTEXT 1 0 39 "# The test given by Riesel works with\n" }{MPLTEXT 1 0 45 "# discriminnant D if the there are integers\n" }{MPLTEXT 1 0 47 "# a,b,r such that (a+b*sqrt(D))^2/r is a unit\n" }{MPLTEXT 1 0 38 "# \+ such that r=|a^2-b^2*D|, (D|N)=-1,\n" }{MPLTEXT 1 0 49 "# (r|D)(a^2-b^ 2*D)/r=-1. We are here interested\n" }{MPLTEXT 1 0 39 "# for the choos e D=13, a=3, b=1, r=4.\n" }{MPLTEXT 1 0 41 "# The test is then applica ble for those\n" }{MPLTEXT 1 0 38 "# N, for which (13|N)=(N|13)=-1 and \n" }{MPLTEXT 1 0 40 "# (13|2*N+1)=(2*N+1|13)=-1. This gives\n" } {MPLTEXT 1 0 47 "# the condition h*7^e mod 13 is in \{3,6,8\}.\n" } {MPLTEXT 1 0 41 "# In these cases N+2 mod 13 also not 0.\n" }{MPLTEXT 1 0 51 "# We plan to use the modulus 30030=2*3*5*7*11*13.\n" }{MPLTEXT 1 0 42 "# Because N, N+2 and 2*N+1 are certainly\n" }{MPLTEXT 1 0 41 "# not divisible by 2, 3, 5, 7 and 11 if\n" }{MPLTEXT 1 0 48 "# h divi sible by 3, 5, 7 and 11, independently\n" }{MPLTEXT 1 0 48 "# of the c hoose of n, we obtain a lot of cases\n" }{MPLTEXT 1 0 47 "# in which t he discriminant D=13 may be used,\n" }{MPLTEXT 1 0 15 "# as follows:\n " }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 49 "# e mod 12 =0 : h mod 30030 = 5775,26565,10395\n" }{MPLTEXT 1 0 49 "# e mod 12 =1 : h mod 30030 \+ = 10395,5775,12705\n" }{MPLTEXT 1 0 50 "# e mod 12 =2 : h mod 30030 = 12705,10395,28875\n" }{MPLTEXT 1 0 50 "# e mod 12 =3 : h mod 30030 = 28875,12705,21945\n" }{MPLTEXT 1 0 49 "# e mod 12 =4 : h mod 30030 = 21945,28875,3465\n" }{MPLTEXT 1 0 49 "# e mod 12 =5 : h mod 30030 = \+ 3465,21945,24255\n" }{MPLTEXT 1 0 49 "# e mod 12 =6 : h mod 30030 = 2 4255,3465,19635\n" }{MPLTEXT 1 0 50 "# e mod 12 =7 : h mod 30030 = 19 635,24255,17325\n" }{MPLTEXT 1 0 49 "# e mod 12 =8 : h mod 30030 = 17 325,19635,1155\n" }{MPLTEXT 1 0 48 "# e mod 12 =9 : h mod 30030 = 115 5,17325,8085\n" }{MPLTEXT 1 0 48 "# e mod 12 =10 : h mod 30030 = 8085, 1155,26565\n" }{MPLTEXT 1 0 49 "# e mod 12 =11 : h mod 30030 = 265775, 8085,5775\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 43 "# These where calculated by the following\n" }{MPLTEXT 1 0 20 "# simple program: \n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 49 "calcsophietwinclasses:=proc() local n,L; L:=[];\n" } {MPLTEXT 1 0 23 "for n from 0 to 11 do\n" }{MPLTEXT 1 0 55 " [n,chrem ([1,0,0,0,0,3*7^n mod 13],[2,3,5,7,11,13]),\n" }{MPLTEXT 1 0 52 " chr em([1,0,0,0,0,6*7^n mod 13],[2,3,5,7,11,13]),\n" }{MPLTEXT 1 0 53 " c hrem([1,0,0,0,0,8*7^n mod 13],[2,3,5,7,11,13])];\n" }{MPLTEXT 1 0 17 " L:=[op(L),%];\n" }{MPLTEXT 1 0 20 "od; L end;\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6\"6$I\"nGF#I\"LGF#F#F#C%>F&7\"?(F%\"\"!\"\"\" \"#6I%trueG%*protectedGC$7&F%-I&chremGF#6$7(F,F+F+F+F+-I$modGF#6$,$*& \"\"$F,)\"\"(F%F,F,\"#87(\"\"#F;\"\"&F=F-F>-F36$7(F,F+F+F+F+-F76$,$*& \"\"'F,FF?-F36$7(F,F+F+F+F+-F76$,$*&\"\")F,FF?>F&7$-I#op GF/6#F&I\"%GF#F&F#F#F#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "# \n" }{MPLTEXT 1 0 49 "# More generally, such calculations can be done \n" }{MPLTEXT 1 0 63 "# by the following program, which find all congr uence classes\n" }{MPLTEXT 1 0 66 "# for h for a given discriminant D= 5,13,17,29,53 and primes from\n" }{MPLTEXT 1 0 60 "# the list P, for w hich h*2^(n+e)+d<>0 mod p and all cases\n" }{MPLTEXT 1 0 56 "# where d =-1 are appropriate for the Riesel test by D.\n" }{MPLTEXT 1 0 36 "# L ist L contains the pairs [e,d].\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 61 "classes:=proc(D::posint,n::integer,P::list( posint),L::list)\n" }{MPLTEXT 1 0 26 "local l,i,ll,r,p,LL,q,x;\n" } {MPLTEXT 1 0 37 "ll:=ilcm(phi(D),op(map(i->i-1,P)));\n" }{MPLTEXT 1 0 16 "r:=[i$i=1..D];\n" }{MPLTEXT 1 0 15 "for l in L do\n" }{MPLTEXT 1 0 19 " if l[2]=-1 then\n" }{MPLTEXT 1 0 54 " r:=remove(x->jacobi(D ,x*2^(n+l[1])+l[2])<>-1,r);\n" }{MPLTEXT 1 0 8 " else\n" }{MPLTEXT 1 0 53 " r:=select(x->jacobi(D,x*2^(n+l[1])+l[2])<>0,r);\n" }{MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 18 "od; LL:=[[D,r]];\n" }{MPLTEXT 1 0 15 "for p in P do\n" }{MPLTEXT 1 0 20 " r:=[i$i=0..p-1];\n" }{MPLTEXT 1 0 17 " for l in L do\n" }{MPLTEXT 1 0 50 " r:=select(x->modp(x* 2^(n+l[1])+l[2],p)<>0,r)\n" }{MPLTEXT 1 0 27 " od; LL:=[op(LL),[p,r]] ;\n" }{MPLTEXT 1 0 14 "od; ll,LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&'I\"DG6\"I'posintG%*protectedG'I\"nGF&I(integerGF('I\"PGF&-I%list GF(6#F''I\"LGF&F/6*I\"lGF&I\"iGF&I#llGF&I\"rGF&I\"pGF&I#LLGF&I\"qGF&I \"xGF&F&F&C(>F6-I%ilcmGF&6$-_I*numtheoryG6$F(I(_syslibGF&I$phiGF&6#F%- I#opGF(6#-I$mapGF(6$f*6#F5F&6$I)operatorGF&I&arrowGF&F&,&F5\"\"\"FT!\" \"F&F&F&F->F77#-I\"$GF(6$F5/F5;FTF%?&F4F2I%trueGF(@%/&F46#\"\"#FU>F7-I 'removeGF(6$f*6#F;F&FPF&0-_FCI'jacobiGF&6$F%,&*&F;FT)F]o,&F*FT&F46#FTF TFTFTF[oFTFUF&F&6(F%9$F*9%F48$F7>F7-I'selectGF(6$f*FcoF&FPF&0Feo\"\"!F &F&F_pF7>F97#7$F%F7?&F8F-FhnC%>F77#-FY6$F5/F5;Fip,&F8FTFTFU?&F4F2Fhn>F 7-Fep6$f*FcoF&FPF&0-I%modpGF(6$FioF8FipF&F&6(F*FapF4FbpF88(F7>F97$-FI6 #F97$F8F76$F6F9F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "cl asses(5,60000,[2,3,7,11,13],[[0,-1],[1,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$\"\"&7#\"\"%7$\"\"#7$\"\"!\"\"\"7$\"\"$7#F,7$\" \"(7'F,F*F/F&\"\"'7$\"#67+F,F*F/F(F&F2\"\")\"\"*\"#57$\"#87-F,F*F/F(F& F4F8F9F:F6\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "chrem([1, 0,4],[2,3,5]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "classes(13,1983*128,[2,3,5,7,11],[[ 0,-1],[1,-1],[0,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$\"#8 7%\"\"$\"\"'\"\")7$\"\"#7$\"\"!\"\"\"7$F(7#F.7$\"\"&7$F.F,7$\"\"(7&F.F ,F(F37$\"#67*F.F/F(\"\"%F3F)F6F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "chrem([1,0,0,0,0,3],[2,3,5,7,11,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"%vd" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "class es(13,1983*128,[2,3,5,7,11],[[0,-1],[1,+1],[0,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$\"#87&\"\"$\"\"(\"\")\"\"*7$\"\"#7$\"\"!\"\" \"7$F(7#F/7$\"\"&7$F/F(7$F)7&F/F-\"\"%F47$\"#67*F/F(F8F4\"\"'F)F*\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "chrem([1,0,0,0,0,9],[2,3 ,5,7,11,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"&Dt\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "classes(13,21*2^14-128,[2,3,5,7,11] ,[[0,-1],[1,-1],[0,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$ \"#87%\"\"\"\"\"#\"\"(7$F)7$\"\"!F(7$\"\"$7#F-7$\"\"&7$F-F)7$F*7&F-F(F 2\"\"'7$\"#67*F-F(F)F/\"\"%F*\"\"*\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "chrem([0,0,0,0,0,1],[2,3,5,7,11,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"%Ip" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 " classes(13,247*128,[2,3,5,7,11,13],[[0,-1],[1,-1],[2,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7)7$\"#87$\"\"*\"#67$\"\"#7$\"\"!\"\"\"7 $\"\"$7#F-7$\"\"&7$F-F+7$\"\"(7&F-F0F3\"\"'7$F)7*F-F.F+F0F8F6F(\"#57$F &7,F-F.F+F3F8F6F(F;F)\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "classes(13,273*128,[2,3,5,7,11,13],[[0,-1],[1,-1],[2,-1]]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7)7$\"#87$\"\"$\"\")7$\"\"#7$\"\"! \"\"\"7$F(7#F-7$\"\"&7$F-F+7$\"\"(7&F-F(F2\"\"'7$\"#67*F-F.F+F(\"\"%F7 F5F)7$F&7,F-F+F(F;F2F7F)\"\"*F9\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "273*128;" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"&W\\$" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "chrem([1,0,0,0,0,3],[2,3,5,7 ,11,13]);" }{MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"%vd" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "ee:=273; log[10.](2.)*128* ee; (ee/247)^4.;" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$t#" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+<#>>0\"!\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "$ \"+.GK#\\\"!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "a:=expan d((3+1*sqrt(13))^2/4);" }}{PARA 11 "" 1 "" {XPPMATH 20 ",&#\"#6\"\"#\" \"\"*&#\"\"$F%F&)\"#8#F&F%F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "riesel(5110664609396115,34944,11/2,3/2,13);" }}{PARA 11 "" 1 " " {XPPMATH 20 "I%trueG%*protectedG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "riesel(5110664609396115,34945,11/2,3/2,13);" } {MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "I%trueG%*protectedG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "riesel(5110664609396115, 34946,11/2,3/2,13);" }{MPLTEXT 1 0 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "I%trueG%*protectedG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "2; log[2.](%); 2*3; log[2.](%); 2*3*5;log[2.](%); 2*3*5*7; log[2.](%);\n " }{MPLTEXT 1 0 52 "2*3*5*7*11; log[2.](%); 2*3*5*7*11*13; log[2.](%); \n" }{MPLTEXT 1 0 64 "2*3*5*7*11*13*17; log[2.](%); 2*3*5*7*11*13*17*1 9; log[2.](%);\n" }{MPLTEXT 1 0 76 "2*3*5*7*11*13*17*19*23; log[2.](%) ; 2*3*5*7*11*13*17*19*23*29; log[2.](%);\n" }{MPLTEXT 1 0 43 "2*3*5*7* 11*13*17*19*23*29*31; log[2.](%);\n" }{MPLTEXT 1 0 46 "2*3*5*7*11*13*1 7*19*23*29*31*37; log[2.](%);\n" }{MPLTEXT 1 0 49 "2*3*5*7*11*13*17*19 *23*29*31*37*41; log[2.](%);\n" }{MPLTEXT 1 0 52 "2*3*5*7*11*13*17*19* 23*29*31*37*41*47; log[2.](%);\n" }{MPLTEXT 1 0 55 "2*3*5*7*11*13*17*1 9*23*29*31*37*41*47*53; log[2.](%);\n" }{MPLTEXT 1 0 58 "2*3*5*7*11*13 *17*19*23*29*31*37*41*47*53*59; log[2.](%);\n" }{MPLTEXT 1 0 61 "2*3*5 *7*11*13*17*19*23*29*31*37*41*47*53*59*61; log[2.](%);\n" }{MPLTEXT 1 0 62 "2*3*5*7*11*13*17*19*23*29*31*37*41*47*53*59*61*67; log[2.](%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"\"\"\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+,D'\\e#!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#I" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+'f!*o!\\!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$5#" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+=bC9x!\"*" }} {PARA 11 "" 1 "" {XPPMATH 20 "\"%5B" }}{PARA 11 "" 1 "" {XPPMATH 20 "$ \"+9xO<6!\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"&I+$" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+&o6u[\"!\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"'50 ^" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+qz:'*=!\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"(!p*p*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+@2&4K#!\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"*qG4B#" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+ " 0 "" {MPLTEXT 1 0 20 "chrem([1,3],[2,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "class es(13,61*128,[2,3,5,7,11,17],[[0,-1],[1,-1],[2,-1],[3,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7)7$\"#87#\"#67$\"\"#7$\"\"!\"\"\"7$\" \"$7#F,7$\"\"&F07$\"\"(7&F,F/F2\"\"'7$F(7)F,F/F2F4\"\")\"\"*\"#57$\"#< 7/F,F*F/\"\"%F2F6F4F9F;F(\"#7\"#9\"#;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "chrem([1,0,0,11],[2,3,5,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$v$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "class es(13,30*128,[2,3,5,7,11,17],[[0,-1],[1,-1],[2,-1],[3,-1],[4,-1]]);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7)7$\"#87\"7$\"\"#7$\"\"!\"\"\"7 $\"\"$7#F+7$\"\"&F/7$\"\"(7&F+F.F1\"\"'7$\"#67(F+F)\"\"%F1\"\")\"#57$ \"#<7.F+F)F.F9F1F5F3F:F;F7\"#7\"#9" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "classes(13,30*128,[2,3,5,7,11,17],[[0,-1],[1,-1],[2,- 1],[3,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7)7$\"#87#\"\")7$ \"\"#7$\"\"!\"\"\"7$\"\"$7#F,7$\"\"&F07$\"\"(7&F,F/F2\"\"'7$\"#67)F,F* \"\"%F2F(\"\"*\"#57$\"#<7/F,F*F/F:F2F6F4F(F " 0 "" {MPLTEXT 1 0 44 "classes(17,30*128,[2,3,5,7,11,13],[ [4,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7)7$\"#<7*\"\"#\"\"% \"\"&\"\"'\"\"*\"#5\"#6\"#87$F(7$\"\"!\"\"\"7$\"\"$7$F2F(7$F*7&F2F(F5F )7$\"\"(7(F2F3F(F5F*F+7$F.7,F2F3F(F5F)F*F+F:\"\")F-7$F/7.F2F3F(F5F)F*F +F:F>F-F.\"#7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "chrem([1,0 ,0,8],[2,3,5,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$b#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 88 "classes(13,29*64,[2,3,5,7,11,17,19, 23,29,31],[[0,-1],[1,-1],[2,-1],[3,-1]]); cl13:=%[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"&Sa&7-7$\"#87#\"#67$\"\"#7$\"\"!\"\"\"7$\"\"$7#F, 7$\"\"&F07$\"\"(7&F,F/F2\"\"'7$F(7)F,F-F/F6F4\"\"*\"#57$\"#<7/F,F*F/\" \"%F2F6F4\"\")F:F(\"#7\"#9\"#;7$\"#>71F,F-F*F>F4F?F9F:F(F&FA\"#:FBF<\" #=7$\"#B75F,F/F2F6F4F9F:F(F@F&FAFFFBFF2F6F4F?F9F:F(F@FAFFFBF71F*F+F(FF$F?FDF@F:FEFB\"#?\"#@\"#A7$\"#H7;F*F+F(F-FF?FDF@F:FEFBFIFK\"#C\"#D\"#F\"#G7$\"#J7=F*F+F-F0F4F2F7F8F&F>F$F ?FDF:FEFBFIFJFKFGFOFP\"#EFQFRFM\"#I" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "classes(17,29*64,[2,3,5,7,11,13,19,23,29,31],[[4,-1], [5,-1]]); cl17:=%[2];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"&Sa&7-7$\"# <7&\"\"#\"\"&\"#6\"#87$F(7$\"\"!\"\"\"7$\"\"$7#F.7$F)7%F.F(\"\"%7$\"\" (7'F.F(F1F)\"\"'7$F*7+F.F(F1F5F)F7\"\")\"\"*\"#57$F+7-F.F(F1F5F)F9FF*\"#77$\"#>73F.F/F(F1F5F)F9F7FFAF+\"#9\"#;F&\"#=7$\"#B77F.F/F( F1F5F)F7FF*F+FE\"#:FFF&FGFC\"#?\"#@\"#A7$\"#H7=F.F/F(F1F5F)F9F7F< F=F>F*FAF+FEFKFFF&FGFCFLFMFNFI\"#C\"#E\"#G7$\"#J7?F.F(F1F5F)F9F7F F*FAF+FEFKF&FGFCFLFMFNFIFR\"#DFS\"#FFTFP\"#I" }}{PARA 11 "" 1 "" {XPPMATH 20 "7-7$\"#<7&\"\"#\"\"&\"#6\"#87$F&7$\"\"!\"\"\"7$\"\"$7#F,7 $F'7%F,F&\"\"%7$\"\"(7'F,F&F/F'\"\"'7$F(7+F,F&F/F3F'F5\"\")\"\"*\"#57$ F)7-F,F&F/F3F'F7F:F;F73F,F-F&F/F3F'F7F5F:F;F " 0 "" {MPLTEXT 1 0 64 "\{op(cl13[6][2])\}; \{op(cl1 7[6][2])\}; % intersect %%; nops(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 " <)\"\"!\"\"\"\"\"$\"\"'\"\"(\"\"*\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "<+\"\"!\"\"#\"\"$\"\"%\"\"&\"\"(\"\")\"\"*\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "<'\"\"!\"\"$\"\"(\"\"*\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "\{op(cl13[8][2 ])\}; \{op(cl17[8][2])\}; % intersect %%; nops(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "<1\"\"!\"\"\"\"\"#\"\"%\"\"(\"\")\"\"*\"#5\"#6\"#8\"#9\" #:\"#;\"#<\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "<3\"\"!\"\"\"\"\"#\"\" $\"\"%\"\"&\"\"'\"\"(\"\")\"\"*\"#5\"#7\"#8\"#9\"#;\"#<\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 " " 0 "" {MPLTEXT 1 0 64 "\{op(cl13[9][2])\}; \{op(cl17[9][2] )\}; % intersect %%; nops(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "<5\"\"! \"\"$\"\"&\"\"'\"\"(\"\"*\"#5\"#6\"#7\"#8\"#9\"#:\"#;\"#<\"#=\"#>\"#? \"#@\"#A" }}{PARA 11 "" 1 "" {XPPMATH 20 "<7\"\"!\"\"\"\"\"#\"\"$\"\"% \"\"&\"\"(\"\")\"\"*\"#5\"#6\"#8\"#9\"#:\"#;\"#<\"#=\"#>\"#?\"#@\"#A" }}{PARA 11 "" 1 "" {XPPMATH 20 "<3\"\"!\"\"$\"\"&\"\"(\"\"*\"#5\"#6\"# 8\"#9\"#:\"#;\"#<\"#=\"#>\"#?\"#@\"#A" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#<" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "\{op(cl13[10][2]) \}; \{op(cl17[10][2])\}; % intersect %%; nops(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "<;\"\"!\"\"\"\"\"#\"\"$\"\"%\"\"&\"\"'\"\"(\"\")\"\"*\"#5 \"#6\"#7\"#9\"#:\"#;\"#<\"#=\"#>\"#?\"#A\"#C\"#D\"#F\"#G" }}{PARA 11 " " 1 "" {XPPMATH 20 "<=\"\"!\"\"\"\"\"#\"\"$\"\"%\"\"&\"\"'\"\"(\"\")\" \"*\"#5\"#6\"#7\"#8\"#9\"#:\"#;\"#<\"#=\"#>\"#?\"#@\"#A\"#B\"#C\"#E\"# G" }}{PARA 11 "" 1 "" {XPPMATH 20 "<9\"\"!\"\"\"\"\"#\"\"$\"\"%\"\"&\" \"'\"\"(\"\")\"\"*\"#5\"#6\"#7\"#9\"#:\"#;\"#<\"#=\"#>\"#?\"#A\"#C\"#G " }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#B" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "\{op(cl13[11][2])\}; \{op(cl17[11][2])\}; % intersect %%; nops(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "<=\"\"!\"\"\"\"\"$\"\"& \"\"'\"\"(\"\"*\"#5\"#6\"#7\"#8\"#9\"#:\"#<\"#=\"#>\"#?\"#@\"#A\"#B\"# C\"#D\"#E\"#F\"#G\"#H\"#I" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#?\"#@\"#A\"#B\"#C\"#D\"#E\"#F\"#G\"#H\"#I" }}{PARA 11 "" 1 "" {XPPMATH 20 "<<\"\"!\"\"$\"\"&\"\"'\"\"(\"\"*\"#5\"#6\"#7\"#8\"#9\"#: \"#<\"#=\"#>\"#?\"#@\"#A\"#B\"#C\"#D\"#E\"#F\"#G\"#H\"#I" }}{PARA 11 " " 1 "" {XPPMATH 20 "\"#E" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "classes(17,1983*128,[2,3,5,7,11,13],[[4,-1],[5,-1],[6,-1]]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7)7$\"#<7#\"#67$\"\"#7$\"\"!\"\" \"7$\"\"$7#F,7$\"\"&7$F,F*7$\"\"(7&F,F/F2\"\"'7$F(7*F,F/F2F7F5\"\")\" \"*\"#57$\"#87,F,F-F*F/\"\"%F2F7F5F:F<" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "classes(5,1983*128,[2,3,7,11,13],[[0,-1],[0,+1]]);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$\"\"&7#\"\"$7$\"\"#7$\"\"!\" \"\"7$F(7#F,7$\"\"(7'F,F*F(\"\"%F&7$\"#67+F,F-F(F3F&\"\"'F1\"\")\"#57$ \"#87-F,F*F(F3F&F7F1F8\"\"*F9F5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "classes(5,1983*128,[2,3,7,11,13],[[0,-1],[0,+1],[1,+1]]);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$\"\"&7#\"\"$7$\"\"#7$\"\"!\"\" \"7$F(7#F,7$\"\"(7&F,F*\"\"%F&7$\"#67*F,F(F3F&\"\"'F1\"\")\"#57$\"#87, F,F*F(F3F&F1F8\"\"*F9F5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " chrem([1,0,3,0,0,0],[2,3,5,7,11,13]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"%.I" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "classes(5,247*128 ,[2,3,7,11,13],[[0,+1],[1,+1],[2,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g7(7$\"\"&7$\"\"$F&7$\"\"#7$\"\"!\"\"\"7$F(7#F,7$\"\"(7&F,F-F *\"\"%7$\"#67*F,F-F*F3F&\"\")\"\"*\"#57$\"#87,F,F-F*F(F3\"\"'F1F7F5\"# 7" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "classes(5,61*128,[2,3, 7,11,13,17],[[0,+1],[1,+1],[2,+1],[3,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7)7$\"\"&7#F&7$\"\"#7$\"\"!\"\"\"7$\"\"$7#F+7$\"\" (7&F+F,F)\"\"%7$\"#67)F+F,F)F.F3\"\"'\"\")7$\"#87+F+F,F)F.F3F7F1F8\"#7 7$\"#<7/F+F,F.F&F7F1\"\"*\"#5F5F " 0 "" {MPLTEXT 1 0 23 "chrem([1,0,0],[2,3,5]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "classe s(5,30*128,[2,3,7,11,13,17,19],[[0,+1],[1,+1],[2,+1],[3,+1],[4,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$?(7*7$\"\"&7#F&7$\"\"#7$\"\"!\" \"\"7$\"\"$7#F+7$\"\"(7&F+F,F)\"\"%7$\"#67(F+F,F.\"\"'F1\"\"*7$\"#87*F +F,F)F&F1F8\"#5F57$\"#<7.F+F.F&F7F1F8F70F+F.F&F 7F1F8F5F@F:FAFB\"#;F>\"#=" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "classes(5,29*64,[2,3,7,11,13,17,19,23,29,31],[[0,+1],[1,+1],[2,+1] ,[3,+1],[4,+1],[5,+1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"&Sa&7-7$ \"\"&7#F&7$\"\"#7$\"\"!\"\"\"7$\"\"$7#F+7$\"\"(7&F+F,F)\"\"%7$\"#67'F+ F,F)F3\"\")7$\"#87)F+F,F)F.F3F1F77$\"#<7-F+F.F&\"\"'F1\"#5F5\"#7F9\"#9 \"#:7$\"#>7/F+F,F)F.F&F>\"\"*F?F5F@FBF<\"#=7$\"#B73F+F,F)F.F3F&F>F1F7F FF?F@F9FA\"#;FG\"#?7$\"#H79F+F,F&F1FFF?F5F@F9FAFBFF1F7FFF?F5F@F9FAFKF " 0 "" {MPLTEXT 1 0 36 "classes(17,0,[2, 3,5,7,11],[[0,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7(7$\"#<7 *\"\"%\"\"'\"\"(\"\")\"#6\"#7\"#8\"#:7$\"\"#7#\"\"!7$\"\"$7$F3F17$\"\" &7&F3F1F5F(7$F*7(F3F1F5F(F8F)7$F,7,F3F1F5F(F8F)F*F+\"\"*\"#5" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "classes(17,0,[2,3,5,7,11],[[ 0,-1],[1,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7(7$\"#<7&\"\" %\"\"'\"#7\"#:7$\"\"#7#\"\"!7$\"\"$F.7$\"\"&7%F/F-F(7$\"\"(7'F/F-F1F3F )7$\"#67+F/F-F1F(F3F6\"\")\"\"*\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "classes(17,0,[2,3,5,7,11],[[0,-1],[1,-1],[2,-1]]);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$S#7(7$\"#<7#\"\"'7$\"\"#7#\"\"!7$ \"\"$F+7$\"\"&7$F,F*7$\"\"(7&F,F.F0F(7$\"#67*F,F*\"\"%F0F3\"\")\"\"*\" #5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "classes(17,0,[2,3,5,7 ,11],[[0,-1],[1,-1],[2,-1],[3,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6$\"$S#7(7$\"#<7\"7$\"\"#7#\"\"!7$\"\"$F*7$\"\"&F*7$\"\"(7&F+F-F/\"\"' 7$\"#67)F+F)\"\"%F/\"\")\"\"*\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "classes(29,0,[2,3,5,7,11],[[0,-1],[1,-1],[2,-1],[3,-1 ]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$?%7(7$\"#H7#\"#?7$\"\"#7#\" \"!7$\"\"$F+7$\"\"&F+7$\"\"(7&F,F.F0\"\"'7$\"#67)F,F*\"\"%F0\"\")\"\"* \"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "classes(29,0,[2,3,5 ,7,11],[[0,-1],[1,-1],[2,-1],[3,-1],[4,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$?%7(7$\"#H7\"7$\"\"#7#\"\"!7$\"\"$F*7$\"\"&F*7$\"\"( 7&F+F-F/\"\"'7$\"#67(F+F)\"\"%F/\"\")\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "classes(53,0,[2,3,5,7,11],[[0,-1],[1,-1],[2,-1],[3,- 1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$!y7(7$\"#`7#\"#@7$\"\"#7# \"\"!7$\"\"$F+7$\"\"&F+7$\"\"(7&F,F.F0\"\"'7$\"#67)F,F*\"\"%F0\"\")\" \"*\"#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "classes(53,0,[2, 3,5,7,11],[[0,-1],[1,-1],[2,-1],[3,-1],[4,-1]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$!y7(7$\"#`7\"7$\"\"#7#\"\"!7$\"\"$F*7$\"\"&F*7$\"\"( 7&F+F-F/\"\"'7$\"#67(F+F)\"\"%F/\"\")\"#5" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 25 "5.15. n^2+1 es n^4+1 alak" }{TEXT 206 8 "\303\272" } {TEXT 206 3 " pr" }{TEXT 206 8 "\303\255" }{TEXT 206 4 "mek." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "# \n" }{MPLTEXT 1 0 58 "# A pretest will be done for prime candidates ha ving the\n" }{MPLTEXT 1 0 59 "# form n^2+1, to be more exact, for (h0+ c*h)^2*b^(2*n)+1,\n" }{MPLTEXT 1 0 58 "# where h runs from 0 to H-1. A ll prime divisors from P0\n" }{MPLTEXT 1 0 53 "# to P1 will be tried. \+ P0 must be odd, and b,c must\n" }{MPLTEXT 1 0 57 "# have prime factors smaller then P0. The values h, for\n" }{MPLTEXT 1 0 59 "# which (h0+c *h)^2*b^(2*n)+1 is not divisible with primes\n" }{MPLTEXT 1 0 33 "# fr om P0 to P1 are given back.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 " \n" }{MPLTEXT 1 0 39 "presquareplus:=proc(h0,H,c,b,n,P0,P1)\n" } {MPLTEXT 1 0 46 "local T,h,p,hh,L,nn,bb,bbb,cc,bT,cT,i,j,R,r;\n" } {MPLTEXT 1 0 19 "T:=array(0..H-1);\n" }{MPLTEXT 1 0 36 "for h from 0 t o H-1 do T[h]:=1 od;\n" }{MPLTEXT 1 0 69 "bT:=array(0..b-1); \+ # table of inverses for b\n" }{MPLTEXT 1 0 37 "for i fro m 0 to b-1 do bT[i]:=0 od;\n" }{MPLTEXT 1 0 24 "for i from 0 to b-1 do \n" }{MPLTEXT 1 0 26 " for j from 0 to b-1 do\n" }{MPLTEXT 1 0 41 " \+ if irem(i*j+1,b)=0 then bT[i]:=j fi\n" }{MPLTEXT 1 0 6 " od\n" } {MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 69 "cT:=array(0..c-1); \+ # table of inverses for c\n" }{MPLTEXT 1 0 37 "for i from 0 to c-1 do cT[i]:=0 od;\n" }{MPLTEXT 1 0 24 "for i from 0 to c-1 do \n" }{MPLTEXT 1 0 26 " for j from 0 to c-1 do\n" }{MPLTEXT 1 0 41 " \+ if irem(i*j+1,c)=0 then cT[i]:=j fi\n" }{MPLTEXT 1 0 6 " od\n" } {MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 29 "for p from P0 to P1 by 2 do\n " }{MPLTEXT 1 0 22 " if isprime(p) then\n" }{MPLTEXT 1 0 22 " r:=m sqrt(p-1,p);\n" }{MPLTEXT 1 0 21 " if r<>FAIL then\n" }{MPLTEXT 1 0 19 " R:=[r,p-r];\n" }{MPLTEXT 1 0 32 " cc:=(cT[p mod c]*p+ 1)/c;\n" }{MPLTEXT 1 0 24 " nn:=n mod (p-1);\n" }{MPLTEXT 1 0 32 " bb:=(bT[p mod b]*p+1)/b;\n" }{MPLTEXT 1 0 26 " bbb:=bb&^nn mod p;\n" }{MPLTEXT 1 0 21 " for r in R do\n" }{MPLTEXT 1 0 34 " hh:=(r*bbb-h0)*cc mod p;\n" }{MPLTEXT 1 0 38 " for h fr om hh to H-1 by p do\n" }{MPLTEXT 1 0 20 " T[h]:=0;\n" } {MPLTEXT 1 0 13 " od;\n" }{MPLTEXT 1 0 11 " od;\n" } {MPLTEXT 1 0 9 " fi;\n" }{MPLTEXT 1 0 7 " fi;\n" }{MPLTEXT 1 0 5 " od;\n" }{MPLTEXT 1 0 8 "L:=[];\n" }{MPLTEXT 1 0 25 "for h from 0 to H- 1 do \n" }{MPLTEXT 1 0 39 " if T[h]=1 then L:=[op(L),h0+c*h] fi\n" } {MPLTEXT 1 0 10 "od; L end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6)I#h0G 6\"I\"HGF%I\"cGF%I\"bGF%I\"nGF%I#P0GF%I#P1GF%61I\"TGF%I\"hGF%I\"pGF%I# hhGF%I\"LGF%I#nnGF%I#bbGF%I$bbbGF%I#ccGF%I#bTGF%I#cTGF%I\"iGF%I\"jGF%I \"RGF%I\"rGF%F%F%C.>F--I&arrayG%*protectedG6#;\"\"!,&F&\"\"\"FE!\"\"?( F.FCFEFDI%trueGF@>&F-6#F.FE>F6-F?6#;FC,&F(FEFEFF?(F8FCFEFPFH>&F66#F8FC ?(F8FCFEFPFH?(F9FCFEFPFH@$/-I%iremGF@6$,&*&F8FEF9FEFEFEFEF(FC>FSF9>F7- F?6#;FC,&F'FEFEFF?(F8FCFEF]oFH>&F7FTFC?(F8FCFEF]oFH?(F9FCFEF]oFH@$/-FZ 6$FfnF'FC>F`oF9?(F/F*\"\"#F+FH@$-I(isprimeG6$F@I(_syslibGF%6#F/C$>F;-_ I*numtheoryGF]pI&msqrtGF%6$,&F/FEFEFFF/@$0F;I%FAILGF@C(>F:7$F;,&F/FEF; FF>F5*&,&*&&F76#-I$modGF%6$F/F'FEF/FEFEFEFEFEF'FF>F2-Ffq6$F)Fgp>F3*&,& *&&F66#-Ffq6$F/F(FEF/FEFEFEFEFEF(FF>F4-Ffq6$-I#&^GF%6$F3F2F/?&F;F:FHC$ >F0-Ffq6$*&,&*&F;FEF4FEFEF$FFFEF5FEF/?(F.F0F/FDFH>FJFC>F17\"?(F.FCFEFD FH@$/FJFE>F17$-I#opGF@6#F1,&F$FE*&F'FEF.FEFEF1F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 58 "# This filter left \+ only those h's from the list L in the\n" }{MPLTEXT 1 0 52 "# resulting list for which (h0+c*h)^2*2^(2*n)+1 is\n" }{MPLTEXT 1 0 19 "# probabl y prime.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 46 "squareplusprob:=proc(h0,c,n,L) local LL,h,N;\n" }{MPLTEXT 1 0 9 "L L:=[];\n" }{MPLTEXT 1 0 15 "for h in L do\n" }{MPLTEXT 1 0 28 " N:=(h 0+c*h)^2*2^(2*n)+1;\n" }{MPLTEXT 1 0 48 " if modp(2&^(N-1),N)=1 then \+ LL:=[op(LL),h] fi\n" }{MPLTEXT 1 0 19 "od; LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I#h0G6\"I\"cGF%I\"nGF%I\"LGF%6%I#LLGF%I\"hGF %I\"NGF%F%F%C%>F*7\"?&F+F(I%trueG%*protectedGC$>F,,&*&),&F$\"\"\"*&F&F 9F+F9F9\"\"#F9)F;,$*&F;F9F'F9F9F9F9F9F9@$/-I%modpGF26$-I#&^GF%6$F;,&F, F9F9!\"\"F,F9>F*7$-I#opGF26#F*F+F*F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 58 "# This filter left only those h 's from the list L in the\n" }{MPLTEXT 1 0 52 "# resulting list for wh ich (h0+c*h)^2*2^(2*n)+1 is\n" }{MPLTEXT 1 0 10 "# prime.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 47 "squareplusproth:=p roc(h0,c,n,L) local LL,h,N;\n" }{MPLTEXT 1 0 9 "LL:=[];\n" }{MPLTEXT 1 0 15 "for h in L do\n" }{MPLTEXT 1 0 28 " N:=(h0+c*h)^2*2^(2*n)+1; \n" }{MPLTEXT 1 0 51 " if proth((h0+c*h)^2,2*n) then LL:=[op(LL),h] f i\n" }{MPLTEXT 1 0 19 "od; LL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I#h0G6\"I\"cGF%I\"nGF%I\"LGF%6%I#LLGF%I\"hGF%I\"NGF%F %F%C%>F*7\"?&F+F(I%trueG%*protectedGC$>F,,&*&),&F$\"\"\"*&F&F9F+F9F9\" \"#F9)F;,$*&F;F9F'F9F9F9F9F9F9@$-I&prothGF%6$*$F7F9F=>F*7$-I#opGF26#F* F+F*F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 51 "# This is a test to measure densities and times. \n" } {MPLTEXT 1 0 39 "# First pretests are done for N where\n" }{MPLTEXT 1 0 52 "# N=(h0+2*h)^2*2^(2*n)+1 and h runs from 0 to H-1.\n" }{MPLTEXT 1 0 55 "# The pretest is repeated for prime limit P=2^e where\n" } {MPLTEXT 1 0 49 "# e is integer from the interval eint. The time\n" } {MPLTEXT 1 0 60 "# and the number of remaining candidates after the pr etest\n" }{MPLTEXT 1 0 60 "# is reported, and p*ln(P) also calculated, where p is the\n" }{MPLTEXT 1 0 57 "# relative frequency of numbers p assed the pretest. The\n" }{MPLTEXT 1 0 55 "# result of the last prete st became the input of the \n" }{MPLTEXT 1 0 53 "# probabilistic test \+ for N. The time and the result\n" }{MPLTEXT 1 0 34 "# of this test is \+ also reported.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 54 "squareplustest:=proc(h0,H,n,eint) local e,p,P,L,t,N;\n" } {MPLTEXT 1 0 48 "print(`Squareplustest; h0=`,h0,`H=`,H,`n=`,n);\n" } {MPLTEXT 1 0 22 "N:=(h0+H)^2*2^(2*n);\n" }{MPLTEXT 1 0 25 "print(`Pret est for N`);\n" }{MPLTEXT 1 0 40 "for e from op(1,eint) to op(2,eint) \+ do\n" }{MPLTEXT 1 0 11 " P:=2^e;\n" }{MPLTEXT 1 0 14 " t:=time();\n" }{MPLTEXT 1 0 37 " L:=presquareplus(h0,H,2,2,n,3,P);\n" }{MPLTEXT 1 0 16 " t:=time()-t;\n" }{MPLTEXT 1 0 24 " p:=evalf(nops(L)/H);\n" } {MPLTEXT 1 0 64 " print(`P=`,2^e,`p=`,p,`p*ln(P)=`,evalf((ln(P))*p),` time=`,t)\n" }{MPLTEXT 1 0 5 "od;\n" }{MPLTEXT 1 0 36 "print(`Probabil istic test for N`);\n" }{MPLTEXT 1 0 12 "t:=time();\n" }{MPLTEXT 1 0 30 "L:=squareplusprob(h0,2,n,L);\n" }{MPLTEXT 1 0 14 "t:=time()-t;\n" }{MPLTEXT 1 0 22 "p:=evalf(nops(L)/H);\n" }{MPLTEXT 1 0 54 "print(`p=` ,p,`p*ln(N)=`,evalf((ln(N))*p),`time=`,t);\n" }{MPLTEXT 1 0 28 "print( `Proth test for N`);\n" }{MPLTEXT 1 0 12 "t:=time();\n" }{MPLTEXT 1 0 31 "L:=squareplusproth(h0,2,n,L);\n" }{MPLTEXT 1 0 14 "t:=time()-t;\n" }{MPLTEXT 1 0 22 "p:=evalf(nops(L)/H);\n" }{MPLTEXT 1 0 54 "print(`p= `,p,`p*ln(N)=`,evalf((ln(N))*p),`time=`,t);\n" }{MPLTEXT 1 0 6 "L end; " }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I#h0G6\"I\"HGF%I\"nGF%I%eintGF%6 (I\"eGF%I\"pGF%I\"PGF%I\"LGF%I\"tGF%I\"NGF%F%F%C3-I&printG%*protectedG 6(I4Squareplustest;~h0=GF%F$I#H=GF%F&I#n=GF%F'>F/*&),&F$\"\"\"F&F<\"\" #F<)F=,$*&F=FF,)F=F*>F.-I%timeGF3F%>F--I.presquareplusGF%6)F$F&F=F= F'\"\"$F,>F.,&FOFF+-I&evalfGF36#*&-I%nopsGF36#F-FF--I/squareplusprobGF% 6&F$F=F'F-FVFY-F26(F^oF+I)p*ln(N)=GF%-Fen6#*&-Fdo6#F/FF--I0squareplusprothGF%F_pFVFYF`pF-F%F%F%" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "squareplustest(1,20000,1000, 2..15);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6(I4Squareplustest;~h0=G6\"\" \"\"I#H=GF$\"&++#I#n=GF$\"%+5" }}{PARA 11 "" 1 "" {XPPMATH 20 "I.Prete st~for~NG6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"\"%I#p=GF$$ \"\"\"\"\"!I)p*ln(P)=GF$$\"+hVH'Q\"!\"*I&time=GF$$\"%t)*!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"\")I#p=GF$$\"+++++g!#5I)p*ln(P)=GF $$\"+D\\mZ7!\"*I&time=GF$$\"%*y$!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6*I#P=G6\"\"#;I#p=GF$$\"+++]w]!#5I)p*ln(P)=GF$$\"+lY]29!\"*I&time=GF$$ \"%RF!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"#KI#p=GF$$\"+++ +rT!#5I)p*ln(P)=GF$$\"+X%ebW\"!\"*I&time=GF$$\"%N>!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"#kI#p=GF$$\"+++]!\\$!#5I)p*ln(P)=GF$$\"+ S\"e;X\"!\"*I&time=GF$$\"%U9!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I# P=G6\"\"$G\"I#p=GF$$\"+++]pI!#5I)p*ln(P)=GF$$\"+!pI$*[\"!\"*I&time=GF$ $\"%!=\"!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"$c#I#p=GF$$ \"+++]dF!#5I)p*ln(P)=GF$$\"+!o#3H:!\"*I&time=GF$$\"%=5!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"$7&I#p=GF$$\"++++]C!#5I)p*ln(P)=GF$$ \"+L&*QG:!\"*I&time=GF$$\"$r)!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I #P=G6\"\"%C5I#p=GF$$\"+++]8A!#5I)p*ln(P)=GF$$\"+%G\"GM:!\"*I&time=GF$$ \"$9)!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"%[?I#p=GF$$\"++ +]6?!#5I)p*ln(P)=GF$$\"+4@pL:!\"*I&time=GF$$\"$l(!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6\"\"%'4%I#p=GF$$\"++++c=!#5I)p*ln(P)=GF$$\"+, uxV:!\"*I&time=GF$$\"$l(!\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6*I#P=G6 \"\"%#>)I#p=GF$$\"++++5Q" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 54 "# Estimate of the powplusone density Cpo wplusone for\n" }{MPLTEXT 1 0 69 "# polynomial (X*2^n)^(2^e)+1 (n fix) by calculating the product for\n" }{MPLTEXT 1 0 19 "# primes below x. \n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 51 "Cpowp lusone:=proc(e::posint,x::posint) local P,p;\n" }{MPLTEXT 1 0 25 "P:=2 .; p:=nextprime(2);\n" }{MPLTEXT 1 0 14 "while pF,$\" \"#\"\"!>F--I*nextprimeG6$F(I(_syslibGF&6#F1?(F&\"\"\"F:F&2F-F*C$@%/-I %modpGF(6$F-)F1,&F%F:F:F:F:>F,*(F,F:,&F:F:*&)F1F%F:F-!\"\"FIF:,&F:F:*$ F-FIFIFI>F,*&F,F:FJFI>F--F56#F-F,F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Cpowplusone(1,10); Cpowplusone(1,100); Cpowplusone(1, 1000);\n" }{MPLTEXT 1 0 68 "Cpowplusone(1,10000); Cpowplusone(1,100000 ); Cpowplusone(1,1000000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"++++DE! \"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+_=4.F!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+*o24u#!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+J]/U F!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+:5qWF!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+<5iXF!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "Cpowplusone(2,10); Cpowplusone(2,100); Cpowplusone(2,1000);\n" } {MPLTEXT 1 0 68 "Cpowplusone(2,10000); Cpowplusone(2,100000); Cpowplus one(2,1000000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"++++vV!\"*" }} {PARA 11 "" 1 "" {XPPMATH 20 "$\"+?a@k\\!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+Ccg2`!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+\"p3aM &!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+'[y;N&!\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+/E,d`!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 45 "# This procedure calculate the factor qe AB.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 54 "qe AB:=proc(e::posint,A::posint,B::posint) local P,p;\n" }{MPLTEXT 1 0 27 "P:=1.; p:=nextprime(A-1);\n" }{MPLTEXT 1 0 14 "while pF.$\"\"\"\"\"!>F/-I*nextprimeG6$F (I(_syslibGF&6#,&F*F3F3!\"\"?(F&F3F3F&2F/F,C$@$/-I%modpGF(6$F/)\"\"#,& F%F3F3F3F3>F.*&F.F3,&F3F3*&)FFF%F3F/FF/-F76#F/F.F&F&F&" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "# square plus one prime" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "f:=h->((2*h+1)*2.^(340000.*4 ))^2+1;\n" }{MPLTEXT 1 0 17 "g:=h->1/ln(f(h));" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6#I\"hG6\"F%6$I)operatorGF%I&arrowGF%F%,&*&),&*&\"\"#\" \"\"F$F/F/F/F/F.F/))$F.\"\"!*&$\"'++MF3F/\"\"%F/F.F/F/F/F/F%F%F%" }} {PARA 11 "" 1 "" {XPPMATH 20 "f*6#I\"hG6\"F%6$I)operatorGF%I&arrowGF%F %*$-I#lnG6$%*protectedGI(_syslibGF%6#-I\"fGF%F#!\"\"F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "H:=2.^21; evalf(H/6*(g(0)+4*g(H/2)+ g(H)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"(_r4#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"++/K76!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "%*2.745621017; # expected primes" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+o-,aI!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "qeAB(1 ,3,1000000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+:7x:6!#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "%*(ln(1000000.)/(40*ln(2.)));" }} {PARA 11 "" 1 "" {XPPMATH 20 "$\"+Awwfb!#6" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 41 "%*H*160*20/3.054010268; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+4Tq@7!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "%/24/3600/16; # time for one Cell blade in days" }} {PARA 11 "" 1 "" {XPPMATH 20 "$\"+f'ev$))!\")" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "# quad plus one prime" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "f:=h->((2*h+1)*2.^(340000.*2))^4+1;\n" }{MPLTEXT 1 0 17 "g:=h->1/ln(f(h));" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6#I\"hG6 \"F%6$I)operatorGF%I&arrowGF%F%,&*&),&*&\"\"#\"\"\"F$F/F/F/F/\"\"%F/)) $F.\"\"!*&$\"'++MF4F/F.F/F0F/F/F/F/F%F%F%" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6#I\"hG6\"F%6$I)operatorGF%I&arrowGF%F%*$-I#lnG6$%*prot ectedGI(_syslibGF%6#-I\"fGF%F#!\"\"F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "H:=2.^15; evalf(H/6*(g(0)+4*g(H/2)+g(H)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"&oF$\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 " $\"+G3*zt\"!#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "%*5.35701 2604; # expected primes" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+r(Q/J*!#6 " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "qeAB(2,3,1000000);" }} {PARA 11 "" 1 "" {XPPMATH 20 "$\"+AT*p<#!#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "%*(ln(1000000.)/(40*ln(2.)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+!psZ3\"!#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "%*H*160*20/0.09310438771; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+n5r@7!\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "%/24/3600/16; # time for one Cell blade in days" }}{PARA 11 "" 1 " " {XPPMATH 20 "$\"+#**3w$))!\")" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 9 "5.16. Egy" }{TEXT 206 8 "\303\251" }{TEXT 206 7 "b speci" } {TEXT 206 8 "\303\241" }{TEXT 206 8 "lis alak" }{TEXT 206 8 "\303\272" }{TEXT 206 3 " pr" }{TEXT 206 8 "\303\255" }{TEXT 206 4 "mek." }} {PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 69 "# Cullen and Woodall numbers: n*2^n+-1; al l known below n<=8000000.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n " }{MPLTEXT 1 0 60 "x:=20000000; evalf(int(y->2/y/ln(2.)/ln(ln(y)),800 0000..x));" }}{PARA 11 "" 1 "" {XPPMATH 20 "\")+++?" }}{PARA 11 "" 1 " " {XPPMATH 20 ",&$\")v'>Y*!\")\"\"\"*&$\"\"!F)F&^#F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 45 "# This proced ure calculate the factor qsAB.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 54 "qsAB:=proc(s::posint,A::posint,B::posint) loc al P,p;\n" }{MPLTEXT 1 0 27 "P:=1.; p:=nextprime(A-1);\n" }{MPLTEXT 1 0 48 "while pF.$\"\"\"\"\"!>F/-I* nextprimeG6$F(I(_syslibGF&6#,&F*F3F3!\"\"?(F&F3F3F&2F/F,C$>F.*&F.F3,&F 3F3*&F%F3F/FF/-F76#F/F.F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "qsAB(1,3,1000000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "$ \"+;;kF\")!#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "%*(ln(1000 000.)/(50*ln(2.))); # decreasing factor of sieve" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+BH$*RK!#6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "%*12000000*160*16*20; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+)y91*>\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "%/24/3600/16; # time for one Cell blade in days" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+)=q*R9!\"&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 70 "# Primorial numbers: p#+-1; p#> " 0 "" {MPLTEXT 1 0 30 "%*300*128* 3; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+^cTp[\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "%/24/3600/420; # time for all PS3 in days" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+:/)=M\"!\"(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 74 "# Fact orial numbers: n!+-1; n!>')!\"%" }} {PARA 11 "" 1 "" {XPPMATH 20 "$\"*,+Ue(!\"%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "%*300*200; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+1+_]X\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "%/24/3600/420; # time for all PS3 in days" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+C8+a7!\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 63 "# Primes in arithmetic sequences, 3 primes; \+ record (02.2011):\n" }{MPLTEXT 1 0 64 "# 1185*2^529445-1539*2^263359+1 , d=1185*2^529444-1539*2^263359\n" }{MPLTEXT 1 0 28 "# (159382 decimal digits).\n" }{MPLTEXT 1 0 4 "# \n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 64 "evalf(2^64/3/5/7/11/13/17/19/23/29/31); # so many to sieve out\n " }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 117 "(2/1)*(3/2)*(5/4)*(7/6)*(11/ 10)*(13/12)*(17/16)*(19/18)*(23/22)*(29/28)*(31/30); evalf(%); # so ma ny times more dense" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+X#>&R=!\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "#\")BF#o)\")S5F8" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+4(pAa'!\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "qsAB(1,32,1000000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"++8meE!#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "%*(ln(1000000.)/(50*ln(2 .))); # decreasing factor of sieve" }}{PARA 11 "" 1 "" {XPPMATH 20 "$ \"++e#)f5!#5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "1/200000/ln (10.); # natural density of primes having 200000 digits" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+5CZr@!#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "%*6.542269709/0.1059825800; 1/%; # increased density and expec ted tests" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+dFWS8!#8" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+$f@-Y(!\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "# after 30000000 test we have 400 primes, 80000 pairs , seems to be enough" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "300 0000*160*5; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"+++++ C" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "%/24/3600/16; evalf(%) ; # time for one Cell blade in days" }}{PARA 11 "" 1 "" {XPPMATH 20 "# \"&Dc\"\"\"*" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+666O " 0 "" {MPLTEXT 1 0 66 "1/160000/ln(10.); # natural \+ density of primes having 160000 digits" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+70M9F!#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "%*6.54226 9709/0.1059825800; 1/%; # increased density and expected tests" }} {PARA 11 "" 1 "" {XPPMATH 20 "$\"+YMbv;!#8" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+vs " 0 "" {MPLTEXT 1 0 72 "# after 1800000 test we have 300 primes, 45000 pairs, seems to be \+ enough" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "1800000*300*12; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"++++!['" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "%/24/3600/420; evalf(%); # t ime for all PS3 in days" }}{PARA 11 "" 1 "" {XPPMATH 20 "#\"%]7\"\"(" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+'G9dy\"!\"(" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 20 "# A ten-year jump:\n" }{MPLTEXT 1 0 2 "\n" } {MPLTEXT 1 0 66 "1/310000/ln(10.); # natural density of primes having \+ 310000 digits" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+U*\\4S\"!#:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "%*6.542269709/0.1059825800; \+ 1/%; # increased density and expected tests" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+(y " 0 "" {MPLTEXT 1 0 75 "# after 5800000 tes t we have 500 primes, 125000 pairs, seems to be enough\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 33 "5800000*300*24; # SPU time in sec" }}{PARA 11 "" 1 "" {XPPMATH 20 "\",+++g<%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "%/24/3600/420; evalf(%); # time for all PS3 in days" }}{PARA 11 "" 1 "" {XPPMATH 20 "#\"&+D(\"#j" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+^Oz]6!\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "repunit:=proc(n) local i;\n" }{MPLTEXT 1 0 59 "for i to n do if is prime((10^i-1)/9) then print(i) fi od;\n" }{MPLTEXT 1 0 4 "end;" }} {PARA 11 "" 1 "" {XPPMATH 20 "f*6#I\"nG6\"6#I\"iGF%F%F%?(F'\"\"\"F)F$I %trueG%*protectedG@$-I(isprimeG6$F+I(_syslibGF%6#,&*&#F)\"\"*F))\"#5F' F)F)F4!\"\"-I&printGF+F&F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "repunit(1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"#" }} {PARA 11 "" 1 "" {XPPMATH 20 "\"#>" }}{PARA 11 "" 1 "" {XPPMATH 20 "\" #B" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"$<$" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 7 "5.17. K" }{TEXT 206 8 "\303\241" }{TEXT 206 13 "tai egy \+ probl" }{TEXT 206 8 "\303\251" }{TEXT 206 1 "m" }{TEXT 206 8 "\303\241 " }{TEXT 206 3 "ja." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 64 "# This is a simple p rocedure to get all the prime pairs (p,q) \n" }{MPLTEXT 1 0 55 "# for \+ which the quotient (p+1)/(q+1)=n is an integer,\n" }{MPLTEXT 1 0 58 "# 1F+7\"? (F(\"\"$\"\"#F%1F(F$@$-I(isprimeGF%6#F(>F+7$-I#opG%*protectedG6#F+F(>F ,F0?(F)F3\"\"\"F%1F)F&C%>F-F0?&F(F+I%trueGF=C$>F*,(*&F)FAF(FAFAF)FAFA! \"\"@$-F76#F*>F-7$-F<6#F-7$F*F(>F,7$-F<6#F,7$F)F-F,F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "L:=prime_plus_one_quotient(10,100); " }}{PARA 11 "" 1 "" {XPPMATH 20 "7_q7$\"\"#7$7$\"\"(\"\"$7$\"#6\"\"&7 $F(7%7$F*F(7$\"#F(7$\"#H F+7$\"\"'7$7$F2F(7$\"#ZF'7$F'7#7$\"#TF+7$\"\")7$7$F8F(7$FDF+7$\"\"*7$7 $\"#`F+7$\"#rF'7$\"#57$7$\"#fF+7$\"#zF'7$F*7#7$\"#VF(7$\"#77$7$FDF(7$F TF+7$\"#87#7$\"$.\"F'7$\"#97#7$\"#$)F+7$\"#:7$7$FYF(7$\"#*)F+7$\"#;7#7 $\"$F\"F'7$F07$7$\"#nF(7$\"$,\"F+7$\"#=7$7$FTF(7$\"$2\"F+7$F<7$7$\"$8 \"F+7$\"$^\"F'7$\"#?7#7$FenF(7$\"#@7$7$FhoF(7$\"$n\"F'7$\"#A7#7$\"$J\" F+7$F27#7$\"$P\"F+7$\"#C7#7$\"$\">F'7$\"#D7$7$\"$\\\"F+7$\"$*>F'7$\"#E 7#7$FcoF(7$\"#F7#7$F_qF(7$\"#G7$7$F_rF+7$\"$B#F'7$F>7#7$\"$t\"F+7$\"#I 7$7$\"$z\"F+7$\"$R#F'7$F87\"7$\"#K7$7$FcpF(7$F]sF+7$\"#L7%7$FdrF(7$\"$ (>F+7$\"$j#F'7$\"#M7#7$\"$r#F'7$\"#N7#7$\"$R\"F(7$\"#OF_u7$\"#PF_u7$\" #Q7$7$FeqF(7$\"$F#F+7$\"#R7$7$\"$L#F+7$\"$6$F'7$\"#S7#7$F]uF+7$FH7#7$ \"$j\"F(7$\"#U7$7$F_rF(7$\"$^#F+7$Fin7#7$\"$d#F+7$\"#W7#7$F\\vF+7$\"#X 7%7$F[uF(7$\"$p#F+7$\"$f$F'7$\"#Y7#7$\"$n$F'7$FD7#7$\"$\"GF+7$\"#[7$7$ F]sF(7$\"$$QF'7$\"#\\7#7$\"$$HF+7$\"#]7#7$FdsF(7$\"#^F_u7$\"#_7#7$FgwF +7$FR7$7$\"$6#F(7$\"$<$F+7$\"#a7#7$\"$J%F'7$\"#b7#7$\"$R%F'7$\"#c7#7$F btF(7$\"#d7#7$F`wF(7$\"#e7$7$\"$Z$F+7$\"$j%F'7$FY7#7$\"$`$F+7$\"#g7%7$ F]uF(7$FeyF+7$\"$z%F'7$\"#h7#7$\"$([F'7$\"#iF_u7$\"#j7$7$FexF(7$\"$.&F '7$\"#k7#7$FdzF+7$\"#l7#7$\"$*QF+7$\"#m7#7$F\\vF(7$Fgp7#7$\"$,%F+7$\"# o7#7$FavF(7$\"#pF_u7$\"#q7#7$\"$>%F+7$FT7#7$\"$$GF(7$\"#s7#7$F^\\lF+7$ \"#tF_u7$\"#u7#7$\"$V%F+7$\"#v7$7$\"$\\%F+7$\"$*fF'7$\"#w7#7$\"$2'F'7$ \"#x7$7$\"$2$F(7$\"$h%F+7$\"#y7$7$FgwF(7$\"$n%F+7$Fen7#7$\"$J'F'7$\"#! )7#7$F]^lF+7$\"#\")7#7$\"$Z'F'7$\"##)7#7$\"$\"\\F+7$Fho7#7$\"$J$F(7$\" #%)7#7$Fj^lF+7$\"#&)7#7$\"$4&F+7$\"#')F_u7$\"#()7$7$F`]lF(7$\"$@&F+7$ \"#))F_u7$F^pF_u7$\"#!*7$7$FeyF(7$\"$>(F'7$\"#\"*7#7$\"$F(F'7$\"##*7#7 $FjyF(7$\"#$*7$7$\"$d&F+7$\"$V(F'7$\"#%*7$7$\"$j&F+7$\"$^(F'7$\"#&*7$7 $\"$z$F(7$\"$p&F+7$\"#'*7#7$FdzF(7$\"#(*F_u7$\"#)*7#7$\"$(eF+7$\"#**7# 7$\"$$fF+7$\"$+\"7#7$F\\blF+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 59 "# This routine collect statistics from the results of the\n" }{MPLTEXT 1 0 53 "# above routine. For all number 0 <=m<=M, where M is\n" }{MPLTEXT 1 0 60 "# the number of odd prime less then Q, the number of those\n" }{MPLTEXT 1 0 61 "# numbers 1F)\"\"!?(F(\"\"$\"\"#F%2F(F$@$-I(isprimeG6$%*protected GI(_syslibGF%6#F(>F),&F)\"\"\"FF*-I&arrayGF76#;F.F)?(F(F.F&F*F9F.?&F+F&FC>&F*6#-I%nopsGF76#&F+6#F1,&FHF " 0 "" {MPLTEXT 1 0 22 "st at_prime_plus(10,L);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7&\"#6\"#_\"#K\" \"%" }}}}{SECT 1 {PARA 4 "" 0 "" {TEXT 206 7 "5.18. P" }{TEXT 206 8 " \303\251" }{TEXT 206 4 "lda." }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 14 "5.19. Feladat." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 34 "# This is a simple facto rization\n" }{MPLTEXT 1 0 35 "# procedure using trial division.\n" } {MPLTEXT 1 0 37 "# The result is a sequence of pairs\n" }{MPLTEXT 1 0 37 "# [p,e] where the p's are the prime\n" }{MPLTEXT 1 0 42 "# factors and the e's are the exponents.\n" }{MPLTEXT 1 0 47 "# The factors are anyway in increasing order.\n" }{MPLTEXT 1 0 41 "# Only primes <= P a re tried, hence the\n" }{MPLTEXT 1 0 38 "# last \"factor\" may composi te, if \n" }{MPLTEXT 1 0 27 "# it is greater then P^2;\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 55 "trialdiv:=proc(n::pos int,P::posint) local L,p,i,d,nn;\n" }{MPLTEXT 1 0 15 "L:=[]; nn:=n;\n" }{MPLTEXT 1 0 32 "if type(nn,even) and 2<=P then\n" }{MPLTEXT 1 0 53 " for i from 0 while type(nn,even) do nn:=nn/2; od;\n" }{MPLTEXT 1 0 15 " L:=[[2,i]];\n" }{MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 29 "if nn m od 3=0 and 3<=P then\n" }{MPLTEXT 1 0 50 " for i from 0 while nn mod \+ 3=0 do nn:=nn/3; od;\n" }{MPLTEXT 1 0 21 " L:=[op(L),[3,i]];\n" } {MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 13 "d:=2; p:=5;\n" }{MPLTEXT 1 0 27 "while p<=P and nn>=p^2 do\n" }{MPLTEXT 1 0 22 " if nn mod p=0 the n\n" }{MPLTEXT 1 0 52 " for i from 0 while nn mod p=0 do nn:=nn/p; \+ od;\n" }{MPLTEXT 1 0 23 " L:=[op(L),[p,i]];\n" }{MPLTEXT 1 0 7 " f i;\n" }{MPLTEXT 1 0 19 " p:=p+d; d:=6-d;\n" }{MPLTEXT 1 0 5 "od;\n" } {MPLTEXT 1 0 36 "if nn>1 then L:=[op(L),[nn,1]] fi;\n" }{MPLTEXT 1 0 4 "L;\n" }{MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6$'I \"nG6\"I'posintG%*protectedG'I\"PGF&F'6'I\"LGF&I\"pGF&I\"iGF&I\"dGF&I# nnGF&F&F&C+>F,7\">F0F%@$3-I%typeGF(6$F0I%evenGF(1\"\"#F*C$?(F.\"\"!\" \"\"F&F7>F0,$*&#F@FF,7#7$FF0,$*&#F@FNF@F0F@F@>F,7$-I#opGF(6#F,7$FNF.>F/F<>F-\"\"&?( F&F@F@F&31F-F*1*$)F-FF0*&F0F@F-! \"\">F,7$FX7$F-F.>F-,&F-F@F/F@>F/,&\"\"'F@F/Fho@$2F@F0>F,7$FX7$F0F@F,F &F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "trialdiv(2^107-2^5 4+1,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7%7$\"\"&\"\"\"7$\"$d)F%7$ \">(R`#>UEd+mh!4o'y$F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n 0:=%[3][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\">(R`#>UEd+mh!4o'y$" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^(n0-1),n0);" }} {PARA 11 "" 1 "" {XPPMATH 20 "\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "trialdiv(n0-1,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7'7$\"\"#F$7$\"#>\"\"\"7$\"$2\"F'7$\"$`$F'7$\"8,$\\gA3Tvq7>8F'" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n1:=%[5][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"8,$\\gA3Tvq7>8" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^(n1-1),n1);" }}{PARA 11 "" 1 "" {XPPMATH 20 " \"8*y3SO:?%3LYB\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "triald iv(n1,100000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7$7$\"&8=*\"\"\"7$\"3x p>dOTvO9F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n2:=%[2][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"3xp>dOTvO9" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^(n2-1),n2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "tria ldiv(n2-1,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7&7$\"\"#\"\"%7$\"\" $F$7$\"$Z&\"\"\"7$\".daxKS#=F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n3:=%[4][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\".daxKS#=" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^(n3-1),n3);" }} {PARA 11 "" 1 "" {XPPMATH 20 "\".FsD_y_\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "trialdiv(n3,10000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7$7$\"%.6\"\"\"7$\"+>:q`;F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n4:=%[2][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"+>:q`;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^(n4-1),n4);" }} {PARA 11 "" 1 "" {XPPMATH 20 "\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "trialdiv(n4-1,1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7(7$\"\"#\"\"\"7$\"\"(F%7$\"#>F%7$\"#BF%7$\"$P\"F%7$\"%t>F%" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "trialdiv(2^107+2^54+1,1000); " }}{PARA 11 "" 1 "" {XPPMATH 20 "7#7$\"B8,x>l(fS\"Q8#HoFfA;\"\"\"" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n5:=%[1][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"B8,x>l(fS\"Q8#HoFfA;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^(n5-1),n5);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"A$ea**H " 0 "" {MPLTEXT 1 0 31 "t rialdiv(2^107+2^54+1,1000000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "7$7$\" '*eV)\"\"\"7$\"<<>\\'4$Hx-9$*RM#>F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "n6:=%[2][1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"<<> \\'4$Hx-9$*RM#>" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "modp(3&^ (n6-1),n6);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"<'Q>0@M];Yv*eq\"=" }}}} {SECT 1 {PARA 4 "" 0 "" {TEXT 206 8 "5.20. Pr" }{TEXT 206 8 "\303\255" }{TEXT 206 3 "msz" }{TEXT 206 8 "\303\241" }{TEXT 206 2 "mk" }{TEXT 206 8 "\303\263" }{TEXT 206 3 "dol" }{TEXT 206 8 "\303\241" }{TEXT 206 2 "s." }}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 14 "5.21. Feladat." }} {PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 183 "p:=safeprime(15634567888142561788867656615552613429876453213456 6543212345678877209127512109876123212233332123343412343212334445432123 4320948725467845467788859812342365); log[2.](p);\n" }{MPLTEXT 1 0 190 "q:=safeprime(29841524475159001676561453467890987651234254321456490998 7676267881825143256789099872365142341542323965878747789933777220049883 76667882767156363888377626677728888); log[2.](q);\n" }{MPLTEXT 1 0 9 " n:=p*q;\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 52 "e:=28763541324536789 09987653432123409887635423125;\n" }{MPLTEXT 1 0 50 "igcdex(e,(p-1)*(q- 1),'d'); d; d*e mod (p-1)*(q-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"et zJO7)f))yna%yYD([4KM7KaWMB@VBTVL7KLB7K7w)4@^F\"4s()ycM7KamX8KXw)HMh_bh cw'))yhD9))ycMc\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+zt**)3&!\"(" }} {PARA 11 "" 1 "" {XPPMATH 20 "\"\\uFN!ynEwP))QOcrw#)ymw$))\\+AxP$**yZ( ye'RKU:MU^Os)*4*ycK9D=)yEww)*4\\c9KaUB^w)4*yY`9cw;+f^ZC:%)H" }}{PARA 11 "" 1 "" {XPPMATH 20 "$\"+k\"e3L&!\"(" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"e^lLB8J\\Ph>[P-FpRm.k=E@eI\"yn(pfM%Qb(Gj@Ecd1r;AGreb5l[pymnoEPLh J4x\"3#p#oNV1^jG(3]*yV!G%ym!)3:D:*=P;69(o^J)[0moA%[La\\.%fuJl6A-'Rd4!4 5WUPguEiX*>5N`%\\M\"yKtF*G6s/Sw[A#=CCTDHS$flY" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"ODJUNw))4M7KMl()*4*yOXKTNwG" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "!e^lJQ[+U9*oK23g& )zJv?Ft;Dl/75!oVPro:['pO-Ue*3)4CK=dlH:3X\\BM:yi-+k8S^'*[>#f'*>r*H[U*fd MKsB2er$*y&Q'oNFBT3K\\@#oS/kMUp'y<;(\\1S'HB:%ea$G1#=O^7n?b%y'))>k@6( \\J*R#z(*[L:]sDd6mP'GyCiHr&>" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"\"\"" }}}}{SECT 0 {PARA 4 "" 0 "" {TEXT 206 14 "5.22. Feladat." }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "M:=\" Mint v\303\255z alatti, elmer\303\274lt harangok\n" }{MPLTEXT 1 0 63 " hint\303\241znak-e hajnalonk\303\251nt \303\241gyadn\303\241l\n" } {MPLTEXT 1 0 43 "a tizennyolc \303\251ves iskol\303\241sok\n" } {MPLTEXT 1 0 32 "kiket felakasztatt\303\241l\";\n" }{MPLTEXT 1 0 2 "\n " }{MPLTEXT 1 0 21 "convert(M,'bytes');\n" }{MPLTEXT 1 0 38 "m:=sum(%[ i]*256^(i-1),i=1..nops(%));\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 14 " c:=m&^e mod n;" }}{PARA 11 "" 1 "" {XPPMATH 20 "Q\\tMint~`v|^w|huz`~al atti,~`elmer|^w|gvlt`~harangok|+|+`hint|^w|\\uznak`-e~`hajnalonk|^w|du nt`~`|^w|\\ugyadn|^w|\\ul`|+|+a~tizennyolc~`|^w|duves`~`iskol|^w|\\uso k`|+|+kiket~`felakasztatt|^w|\\ul`6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "7]s\"#x\"$0\"\"$5\"\"$;\"\"#K\"$=\"\"$&>\"$t\"\"$A\"F'\"#(*\"$3\"F,F& F&F$\"#WF'\"$,\"F-\"$4\"F/\"$9\"F)\"$)=F-F&F'\"$/\"F,F1F,F%\"$.\"\"$6 \"\"$2\"\"#5F7F3F$F%F&F)\"$h\"F+F%F,F6\"#XF/F'F3F,\"$1\"F%F,F-F5F%F6F) \"$p\"F%F&F'F)F8F4\"$@\"F,\"$+\"F%F)F8F-F7F7F,F'F&F$F+F/F%F%FA u5G6n*f%)>]DNDJQ\"fIWf4Y(>ioa*GEOt]53G)Hya\"[x%RJc,aq`N3CyVuh!p6At7EB6 @TY%y*Q#eM#Rg4*=6uS061CY+oG&>" }}{PARA 11 "" 1 "" {XPPMATH 20 "-I%modp G%*protectedG6$-I#&^G6\"6$\"b^l$*)=cl\"z&)oh7Il*zqJn\")\\`[RxVx[pfF`(4 y\\&*[!fw*[54)oDJ:!px#yr-Dz$o@[b3Au5G6n*f%)>]DNDJQ\"fIWf4Y(>i oa*GEOt]53G)Hya\"[x%RJc,aq`N3CyVuh!p6At7EB6@TY%y*Q#eM#Rg4*=6uS061CY+oG &>I\"eGF(I\"nGF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "c&^d mo d n; convert(%,base,256); convert(%,'bytes');" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"b^l$*)=cl\"z&)oh7Il*zqJn\")\\`[RxVx[pfF`(4y\\&*[!fw*[54 )oDJ:!px#yr-Dz$o@[b3Au5G6n*f%)>]DNDJQ\"fIWf4Y(>ioa*GEOt]53G)H ya\"[x%RJc,aq`N3CyVuh!p6At7EB6@TY%y*Q#eM#Rg4*=6uS061CY+oG&>" }}{PARA 11 "" 1 "" {XPPMATH 20 "7]s\"#x\"$0\"\"$5\"\"$;\"\"#K\"$=\"\"$&>\"$t\" \"$A\"F'\"#(*\"$3\"F,F&F&F$\"#WF'\"$,\"F-\"$4\"F/\"$9\"F)\"$)=F-F&F'\" $/\"F,F1F,F%\"$.\"\"$6\"\"$2\"\"#5F7F3F$F%F&F)\"$h\"F+F%F,F6\"#XF/F'F3 F,\"$1\"F%F,F-F5F%F6F)\"$p\"F%F&F'F)F8F4\"$@\"F,\"$+\"F%F)F8F-F7F7F,F' F&F$F+F/F%F%F " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 65 "# This simple procedure generates a pair of safe primes p and q\n" } {MPLTEXT 1 0 56 "# congruent 3 mod 4, and calculates the product n=p*q ,\n" }{MPLTEXT 1 0 61 "# a Blum integer. The output is a sequence of t hese numbers\n" }{MPLTEXT 1 0 64 "# in this order. The input is two la rge numbers, these are the\n" }{MPLTEXT 1 0 62 "# starting points for \+ the search for p and q, respectively. \n" }{MPLTEXT 1 0 63 "# For exam ple, 100 and 104 digit starting points may be used.\n" }{MPLTEXT 1 0 55 "# The best to choose them randomly and independently.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 41 "setBlum:=proc(p0,q 0) local p,q,n,e,d,k;\n" }{MPLTEXT 1 0 19 "p:=safeprime(p0);\n" } {MPLTEXT 1 0 43 "while p mod 4 <> 3 do p:=safeprime(p) od;\n" } {MPLTEXT 1 0 19 "q:=safeprime(q0);\n" }{MPLTEXT 1 0 43 "while q mod 4 \+ <> 3 do q:=safeprime(q) od;\n" }{MPLTEXT 1 0 27 "n:=p*q; p,q,n ; end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6$I#p0G6\"I#q0GF%6(I\"pGF%I \"qGF%I\"nGF%I\"eGF%I\"dGF%I\"kGF%F%F%C(>F(-_I*numtheoryG6$%*protected GI(_syslibGF%I*safeprimeGF%6#F$?(F%\"\"\"F9F%0-I$modGF%6$F(\"\"%\"\"$> F(-F16#F(>F)-F16#F&?(F%F9F9F%0-F<6$F)F>F?>F)-F16#F)>F**&F(F9F)F96%F(F) F*F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 57 "# This inner routine make the encryption and decryption\n" } {MPLTEXT 1 0 55 "# for an arbitrary texts. Here n is the Blum integer, \n" }{MPLTEXT 1 0 53 "# L is the text, x0 is the first quadratic resid ue,\n" }{MPLTEXT 1 0 45 "# k is the number of bits used in one step.\n " }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 42 "Blumi:= proc(n,L,x0,k) local xi,b,i,j,nL;\n" }{MPLTEXT 1 0 17 "nL:=[]; xi:=x0; \n" }{MPLTEXT 1 0 32 "for i from 0 to nops(L)/k-1 do\n" }{MPLTEXT 1 0 34 " b:=convert(xi mod 2^k,base,2);\n" }{MPLTEXT 1 0 17 " for j to k do\n" }{MPLTEXT 1 0 56 " if nops(b)>j then nL:=[op(nL),L[i*k+j]+b[ j] mod 2]\n" }{MPLTEXT 1 0 35 " else nL:=[op(nL),L[i*k+j]] fi\n" } {MPLTEXT 1 0 7 " od;\n" }{MPLTEXT 1 0 22 " xi:=xi &^ 2 mod n;\n" } {MPLTEXT 1 0 22 "od; xi,nL end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I\"nG6\"I\"LGF%I#x0GF%I\"kGF%6'I#xiGF%I\"bGF%I\"iGF%I\"jGF%I#n LGF%F%F%C&>F.7\">F*F'?(F,\"\"!\"\"\",&*&-I%nopsG%*protectedG6#F&F5F(! \"\"F5F5FF+-I(convertGF:6%-I$modGF%6$F*)\"\"#F(I%baseGF%F G?(F-F5F5F(F=@%2F--F96#F+>F.7$-I#opGF:6#F.-FD6$,&&F&6#,&*&F,F5F(F5F5F- F5F5&F+6#F-F5FG>F.7$FPFV>F*-FD6$-I#&^GF%6$F*FGF$6$F*F.F%F%F%" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 49 "# This make the encryption for arbitrary texts.\n" }{MPLTEXT 1 0 55 "# Here \+ n is the Blum integer, L is the text, x is the\n" }{MPLTEXT 1 0 58 "# \+ random number to generate the first quadratic residue,\n" }{MPLTEXT 1 0 45 "# k is the number of bits used in one step.\n" }{MPLTEXT 1 0 3 " #\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 39 "Blume:=proc(n,x,L,k) local pt,i,j,nL;\n" }{MPLTEXT 1 0 63 "if igcd(x,n)>1 then ERROR(`x is not r elative prime to n`) fi;\n" }{MPLTEXT 1 0 21 "convert(L,'bytes');\n" } {MPLTEXT 1 0 39 "pt:=sum(%[i]*256^(i-1),i=1..nops(%));\n" }{MPLTEXT 1 0 25 "pt:=convert(pt,base,2);\n" }{MPLTEXT 1 0 31 "if k>1 then pmod(no ps(pt),k);\n" }{MPLTEXT 1 0 44 " if %<>0 then pt:=[op(pt),0$i=1..k-%] fi;\n" }{MPLTEXT 1 0 5 "fi;\n" }{MPLTEXT 1 0 31 "Blumi(n,pt,x &^ 2 mo d n,k) end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6&I\"nG6\"I\"xGF%I\"LGF %I\"kGF%6&I#ptGF%I\"iGF%I\"jGF%I#nLGF%F%F%C(@$2\"\"\"-I%igcdG%*protect edG6$F&F$-I&ERRORGF46#I=x~is~not~relative~prime~to~nGF%-I(convertGF46$ F'.I&bytesGF%>F*-I$sumG6$F4I(_syslibGF%6$*&&I\"%GF%6#F+F1)\"$c#,&F+F1F 1!\"\"F1/F+;F1-I%nopsGF46#FG>F*-F;6%F*I%baseGF%\"\"#@$2F1F(C$-I%pmodGF %6$-FP6#F*F(@$0FG\"\"!>F*7$-I#opGF4Fhn-I\"$GF46$F[o/F+;F1,&F(F1FGFL-I& BlumiGF%6&F$F*-I$modGF%6$-I#&^GF%6$F&FVF$F(F%F%F%" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 49 "# This make the decryp tion for arbitrary texts.\n" }{MPLTEXT 1 0 65 "# Here p and q are the \+ primes, x is the last quadratic residue,\n" }{MPLTEXT 1 0 66 "# L is t he string, and k is the number of bits used in one step.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 48 "Blumd:=proc(p,q,x,L ,k) local a,b,u,v,i,n,t,nL;\n" }{MPLTEXT 1 0 34 "igcdex(p,q,'a','b'); \+ t:=nops(L);\n" }{MPLTEXT 1 0 43 "u:=x &^ (((p+1)/4) &^ t mod (p-1)) mo d p;\n" }{MPLTEXT 1 0 43 "v:=x &^ (((q+1)/4) &^ t mod (q-1)) mod q;\n" }{MPLTEXT 1 0 46 "nL:=Blumi(p*q,L,a*u+b*v mod p*q,k)[2]; n:=0;\n" } {MPLTEXT 1 0 46 "for i from t to 1 by -1 do n:=n+n+nL[i]; od;\n" } {MPLTEXT 1 0 50 "convert (convert(n,base,256),'bytes'); end;" } }{PARA 11 "" 1 "" {XPPMATH 20 "f*6'I\"pG6\"I\"qGF%I\"xGF%I\"LGF%I\"kGF %6*I\"aGF%I\"bGF%I\"uGF%I\"vGF%I\"iGF%I\"nGF%I\"tGF%I#nLGF%F%F%C*-I'ig cdexGF%6&F$F&.F+.F,>F1-I%nopsG%*protectedG6#F(>F--I$modGF%6$-I#&^GF%6$ F'-F@6$-FC6$,&*&#\"\"\"\"\"%FLF$FLFLFKFLF1,&F$FLFL!\"\"F$>F.-F@6$-FC6$ F'-F@6$-FC6$,&*&FKFLF&FLFLFKFLF1,&F&FLFLFOF&>F2&-I&BlumiGF%6&*&F$FLF&F LF(-F@6$,&*&F+FLF-FLFL*&F,FLF.FLFLF[oF)6#\"\"#>F0\"\"!?(F/F1FOFLI%true GF<>F0,&*&FboFLF0FLFL&F26#F/FL-I(convertGF<6$-F]p6%F0I%baseGF%\"$c#.I& bytesGF%F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "p,q,n:=se tBlum(10^100,10^104);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%\"`qBP/++++++ +++++++++++++++++++++++++++++++++++++++++\"\"dq$yS++++++++++++++++++++ +++++++++++++++++++++++++++++5\"hw4^:$y,++++++++++++++++++++++++++++++ ++++++++++++++IyqsV+++++++++++++++++++++++++++++++++++++++++++++++5" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "x,L:=Blume(n,55555,M,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"gwC&Qy\\@(y(Gi'RRe\"y.gbw\"*\\l]9$ ywh='\\<_kbg+!eJ\"GIi\">j6_)z)yMqTHJJ\\VmLH5vu\\gs*G(>P2d(eu,#3k(pCGJn m&R!)HSLjEtrW;hQIgV=7c[o\"\"\"\"\"!F%F%F&F&F%F&F%F&F&F%F&F%F%F&F&F%F%F %F&F%F%F&F&F&F%F&F%F%F%F&F&F&F&F&F&F%F&F&F&F%F%F&F%F%F%F&F%F%F&F&F&F&F %F%F%F&F%F%F&F%F&F%F&F%F&F%F%F%F%F&F&F&F&F&F&F%F&F&F%F&F&F&F&F%F%F&F&F &F%F%F&F%F%F&F%F&F&F&F&F%F%F&F&F&F%F&F%F%F%F&F&F&F%F&F%F%F%F&F%F&F&F%F &F%F%F&F&F&F%F%F&F%F&F&F&F&F&F&F&F%F&F&F%F&F%F&F&F%F%F&F&F&F%F%F&F%F%F &F%F&F%F%F&F%F%F&F%F&F%F&F&F%F%F&F&F%F&F&F%F%F%F&F%F%F&F&F&F&F%F%F&F&F %F%F%F%F&F%F&F&F%F%F&F%F%F&F&F&F%F&F%F%F%F&F&F&F&F&F&F%F&F&F&F&F&F%F&F %F%F&F%F&F&F&F&F%F%F&F&F%F&F&F%F%F%F&F%F&F&F&F&F%F%F&F&F%F%F%F&F%F%F&F %F%F%F&F&F%F%F&F%F%F%F%F&F%F%F&F%F%F&F%F&F%F%F&F&F%F&F%F&F&F&F&F&F%F&F %F&F&F&F&F&F&F&F%F&F%F%F&F%F&F&F%F&F%F%F&F&F%F%F%F&F%F%F&F&F&F%F&F%F%F %F&F%F%F&F&F&F&F%F%F%F&F&F&F&F%F&F%F&F%F&F%F%F%F%F&F&F%F%F%F&F%F%F&F%F &F&F&F&F%F%F&F%F%F&F%F&F%F%F&F%F&F%F%F&F%F&F&F%F&F%F&F&F%F%F&F&F&F&F&F &F%F&F&F&F&F&F%F&F%F%F&F%F&F&F&F&F%F%F&F&F%F&F%F&F%F%F&F&F%F%F%F&F%F%F &F%F&F&F&F&F%F%F&F&F&F%F%F&F%F%F&F%F%F%F%F&F%F%F&F&F%F%F%F&F%F%F&F%F%F &F%F&F%F%F&F%F%F&F&F&F&F%F%F%F&F&F%F&F%F&F%F&F%F%F%F&F%F%F&F&F&F%F&F%F %F%F&F&F&F&F&F&F%F&F&F%F%F&F&F&F&F%F%F%F&F&F&F&F%F&F%F%F%F%F&F&F%F%F&F %F&F&F%F%F%F%F&F%F&F&F&F&F%F%F&F&F&F%F&F&F%F%F&F&F%F%F%F&F%F%F&F%F%F&F &F&F&F%F%F%F&F&F&F&F%F&F%F&F&F%F%F&F%F%F&F&F%F&F%F&F&F&F&F&F%F&F%F&F&F &F&F%F&F&F&F&F%F%F&F&F&F&F&F&F%F&F&F&F&F%F&F%F%F%F&F%F&F&F%F&F%F%F&F&F %F&F%F%F%F%F&F%F&F%F&F&F%F%F&F&F%F%F%F&F%F%F&F&F%F%F%F&F%F%F&F%F&F&F%F %F%F%F&F%F%F%F%F&F%F%F&F&F&F%F%F&F%F%F&F%F%F&F&F&F%F%F&F&F&F&F&F&F%F&F &F%F%F&F&F&F&F%F%F%F&F&F%F&F%F&F%F&F%F%F&F%F%F%F&F%F&F%F&F&F%F%F&F%F%F &F&F%F%F%F&F&F&F&F&F&F%F&F&F%F&F&F%F&F%F%F&F%F%F&F&F%F%F%F&F%F%F&F%F&F %F%F&F%F%F%F%F&F%F%F&F&F&F%F%F&F%F%F&F%F%F&F&F&F&F%F%F%F&F&F&F&F%F&F%F %F%F&F&F%F%F%F&F%F%F%F%F&F%F%F&F%F%F&F%F&F%F%F&F&F%F&F%F&F&F&F&F&F%F&F %F&F&F&F&F%F%F&F%F&F%F%F&F%F&F&F%F&F%F%F&F%F%F&F%F&F%F%F&F%F&F%F&F&F%F %F&F&F&F%F&F%F%F%F&F&F&F&F&F&F%F&F&F&F%F%F&F&F%F%F&F%F&F%F&F&F%F%F&F&F &F%F%F&F%F%F&F%F&F&F&F&F%F%F&F%F%F&F%F&F%F%F&F%F&F&F&F&F%F%F&F%F%F&F&F %F%F%F&F&F%F&F%F%F%F%F&F&F&F%F&F%F%F%F&F%F&F&F&F&F%F%F&F&F&F%F&F%F%F%F &F&F&F%F&F%F%F%F&F%F%F&F&F&F&F%F%F%F&F&F&F&F%F&F%F&F&F%F%F&F%F%" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "Blumd(p,q,x,L,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "Q\\tMint~`v|^w|huz`~alatti,~`elmer|^w|gvlt`~ha rangok|+|+`hint|^w|\\uznak`-e~`hajnalonk|^w|dunt`~`|^w|\\ugyadn|^w|\\u l`|+|+a~tizennyolc~`|^w|duves`~`iskol|^w|\\usok`|+|+kiket~`felakasztat t|^w|\\ul`6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" } {MPLTEXT 1 0 67 "# This simple procedure generates a safe prime q, and a generator\n" }{MPLTEXT 1 0 63 "# g of the reduced residue classes. \+ For the given exponent d,\n" }{MPLTEXT 1 0 53 "# calculates e=g^d mod \+ q. The output is a sequence \n" }{MPLTEXT 1 0 57 "# of the numbers [q, g,e,d] in this order. The input is \n" }{MPLTEXT 1 0 70 "# three large numbers, these are the starting points for the search \n" }{MPLTEXT 1 0 50 "# for q and e, respectively, and the exponent d.\n" }{MPLTEXT 1 0 55 "# For example, 200 digit starting points may be used.\n" } {MPLTEXT 1 0 55 "# The best to choose them randomly and independently. \n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 46 "setEl Gamal:=proc(q0,g0,d) local f,p,q,g,e,P;\n" }{MPLTEXT 1 0 55 "q:=safepr ime(q0); P:=factorset(q-1); f:=false; g:=g0;\n" }{MPLTEXT 1 0 25 "whil e not f do f:=true;\n" }{MPLTEXT 1 0 30 " for p in P while f=true do \n" }{MPLTEXT 1 0 60 " if modp(g &^ ((q-1)/p),q) = 1 then f:=false; g:=g+1 fi\n" }{MPLTEXT 1 0 7 " od;\n" }{MPLTEXT 1 0 46 "od; e:=modp( g &^ d,q); [q,g,e,d]; end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f* 6%I#q0G6\"I#g0GF%I\"dGF%6(I\"fGF%I\"pGF%I\"qGF%I\"gGF%I\"eGF%I\"PGF%F% F%C)>F+-_I*numtheoryG6$%*protectedGI(_syslibGF%I*safeprimeGF%6#F$>F.-_ F3I*factorsetGF%6#,&F+\"\"\"F?!\"\">F)I&falseGF5>F,F&?(F%F?F?F%4F)C$>F )I%trueGF5?&F*F./F)FH@$/-I%modpGF56$-I#&^GF%6$F,*&F>F?F*F@F+F?C$FA>F,, &F,F?F?F?>F--FN6$-FQ6$F,F'F+7&F+F,F-F'F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 68 "# This make the encryption \+ for short texts. Here q is the modulus,\n" }{MPLTEXT 1 0 63 "# g is th e generator, e the encryption exponent, k the random\n" }{MPLTEXT 1 0 25 "# exponent, L the text.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 " \n" }{MPLTEXT 1 0 47 "ElGamale:=proc(q,g,e,k,L) convert(L,'bytes');\n" }{MPLTEXT 1 0 69 "modp(g &^ k,q),modp(sum(%[i]*256^(i-1),i=1..nops(%) )*(e &^ k),q) end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6'I\"qG6\"I\"gGF %I\"eGF%I\"kGF%I\"LGF%F%F%F%C$-I(convertG%*protectedG6$F).I&bytesGF%6$ -I%modpGF-6$-I#&^GF%6$F&F(F$-F36$*&-I$sumG6$F-I(_syslibGF%6$*&&I\"%GF% 6#I\"iGF%\"\"\")\"$c#,&FDFEFE!\"\"FE/FD;FE-I%nopsGF-6#FBFE-F66$F'F(FEF $F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 68 "# This make the decryption for short texts. Here q is the modulu s,\n" }{MPLTEXT 1 0 44 "# d the decryption exponent, x the number.\n" }{MPLTEXT 1 0 3 "#\n" }{MPLTEXT 1 0 2 "\n" }{MPLTEXT 1 0 27 "ElGamald: =proc(q,g,d,x,y)\n" }{MPLTEXT 1 0 65 "convert(convert(modp((x &^ (q-d- 1))*y,q),base,256),'bytes'); end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "f*6 'I\"qG6\"I\"gGF%I\"dGF%I\"xGF%I\"yGF%F%F%F%-I(convertG%*protectedG6$-F +6%-I%modpGF,6$*&-I#&^GF%6$F(,(F$\"\"\"F'!\"\"F8F9F8F)F8F$I%baseGF%\"$ c#.I&bytesGF%F%F%F%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "L:=s etElGamal(10^200,2*10^199,3*10^199); q:=L[1]; g:=L[2]; e:=L[3]; d:=L[4 ];" }}{PARA 11 "" 1 "" {XPPMATH 20 "7&\"dwZBj+++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++\"\"cw++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++?\"cwH8fRVzqIGb`^9$z]rCTm`QmuRwJ) =qEp_.4,4&3nOy\"z>w+5\"ymv,p`=wsHQ3H%GB#po9#Qx-x_T>i%[Xp83J=&>?G6n?!fn P$z:&y@Y2W&\"cw+++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++I" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"dwZBj++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"cw+++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++?" }}{PARA 11 "" 1 "" {XPPMATH 20 "\"cwH8fRVzqIGb`^9$z]rCTm`QmuRwJ)=qEp_.4,4&3nOy\"z>w+5\"ym v,p`=wsHQ3H%GB#po9#Qx-x_T>i%[Xp83J=&>?G6n?!fnP$z:&y@Y2W&" }}{PARA 11 " " 1 "" {XPPMATH 20 "\"cw++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++I" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "LL:=ElGamale(q,g,e,5555,M[1..36]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"cw&z_6m!RLi2Yk%Hy_T&*pc^.x'39yxo5 Nt\\tTQi0AD43V1r(*)3i!z4T>sY.'euh>I#*H;\"HeQUL7[yU%3v_!=F6d$yrl$pV9:i] 2m`([\"[$pl^'\"cwu(=j)fKr\\.eYK7\")4Bz)3i\\YbyF%G`_(*fMk$>B3ZrNd[/)[SQ T " 0 "" {MPLTEXT 1 0 28 "ElGamald(q,g,d,LL[1],LL[2]); " }}{PARA 11 "" 1 "" {XPPMATH 20 "QIMint~`v|^w|huz`~alatti,~`elmer|^w| gvlt`~harangok6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "debug( ElGamal);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 " " 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 36 "6. Sz\3 03\241mok \303\251s polinomok" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}} {SECT 1 {PARA 3 "" 0 "" {TEXT 205 45 "7. Gyors Fourier-transzform\303 \241ci\303\263" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 38 "8. Elliptikus f\303\274ggv\303\251nyek" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 59 "9. Sz \303\241mol\303\241s elliptikus g\303\266rb\303\251ken" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 65 "10. Faktor iz\303\241l\303\241s elliptikus g\303\266rb\303\251kkel" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 55 "11. Pr\30 3\255mteszt elliptikus g\303\266rb\303\251kkel" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 37 "12. Polinomfak toriz\303\241l\303\241s" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 16 "13. Az AKS-teszt" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 36 "14. A szita m\303\263dszerek alapjai" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 25 "15. Sz\30 3\241mtest szita" }}{PARA 0 "" 0 "" {TEXT 201 0 "" }}}{SECT 1 {PARA 3 "" 0 "" {TEXT 205 16 "16. Vegyes probl" }{TEXT 205 8 "\303\251" }{TEXT 205 1 "m" }{TEXT 205 8 "\303\241" }{TEXT 205 1 "k" }}}{EXCHG {PARA 205 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 201 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {XPPEDIT 19 1 "" "%#%?G" }}}} {MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }