{VERSION 5 0 "IBM INTEL LINUX" "5.0" } {USTYLETAB {CSTYLE "_cstyle2" -1 207 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "_cstyle5" -1 208 "Courier" 1 12 255 0 0 1 2 1 2 2 1 2 0 0 0 1 }{CSTYLE "_cstyle6" -1 209 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{CSTYLE "_cstyle7" -1 210 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 0 0 0 1 }{PSTYLE "_pstyle2" -1 203 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 0 0 1 }1 0 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "_p style5" -1 204 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 2 2 2 1 0 0 1 } 1 0 0 0 0 0 2 0 2 0 2 2 -1 1 }{PSTYLE "_pstyle6" -1 205 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 "_pstyle7" -1 206 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }0 0 0 -1 -1 -1 2 0 2 0 2 2 -1 1 }{PSTYLE "_pstyle8 " -1 207 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 2 2 2 0 0 0 1 }0 0 0 -1 -1 -1 1 0 1 0 2 2 -1 1 }} {SECT 0 {EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 8 "restart;" }}} {EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 31 "deltaE:=E-> 4*E[1]^3+27* E[2]^2:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 18 "appart:=proc (E,P);" }{MPLTEXT 1 208 36 "\n if P=Origine then RETURN(true);fi;" } {MPLTEXT 1 208 74 "\n if P[2]^2=P[1]^3+E[1]*P[1]+E[2] then RETURN(true ) else RETURN(false);fi;" }{MPLTEXT 1 208 5 "\nend:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 38 "somme1:=proc(E,P,Q) local alpha,x3,y3 ;" }{MPLTEXT 1 208 35 "\n alpha:=(Q[2]-P[2])/(Q[1]-P[1]);" } {MPLTEXT 1 208 27 "\n x3:=alpha^2-P[1]-Q[1]; " }{MPLTEXT 1 208 30 " \n y3:=-P[2]+alpha*(P[1]-x3);" }{MPLTEXT 1 208 24 "\n RETURN([x3,y 3]);end:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 36 "somme2:=pro c(E,P) local alpha,x3,y3;" }{MPLTEXT 1 208 36 "\n alpha:=(3*P[1]^2+E [1])/(2*P[2]);" }{MPLTEXT 1 208 24 "\n x3:=alpha^2-2*P[1]; " } {MPLTEXT 1 208 30 "\n y3:=-P[2]+alpha*(P[1]-x3);" }{MPLTEXT 1 208 24 "\n RETURN([x3,y3]);end:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 38 "somme:=proc(E,P,Q) local alpha, x3,y3;" }{MPLTEXT 1 208 36 " \n if deltaE(E)=0 then RETURN(FAIL) :" }{MPLTEXT 1 208 6 "\n else" } {MPLTEXT 1 208 16 "\n if (P=Origine" }{MPLTEXT 1 208 25 "\n or app art(E,P)=true)" }{MPLTEXT 1 208 19 "\n and (Q=Origine" }{MPLTEXT 1 208 26 "\n or appart(E,Q)=true) " }{MPLTEXT 1 208 7 "\n then" } {MPLTEXT 1 208 16 "\n if P<>Origine" }{MPLTEXT 1 208 22 "\n and Q<>O rigine then" }{MPLTEXT 1 208 45 "\n if P[1]<>Q[1] then RETURN(somme1 (E,P,Q));" }{MPLTEXT 1 208 57 "\n elif P[2]=Q[2] and Q[2]<> 0 then R ETURN(somme2(E,P));" }{MPLTEXT 1 208 25 "\n else RETURN(Origine)" } {MPLTEXT 1 208 9 "\n fi; " }{MPLTEXT 1 208 23 "\n elif P=Origine t hen " }{MPLTEXT 1 208 13 "\n RETURN(Q);" }{MPLTEXT 1 208 18 "\n else RETURN(P);" }{MPLTEXT 1 208 6 "\n fi;" }{MPLTEXT 1 208 21 "\n else R ETURN(false);" }{MPLTEXT 1 208 5 "\n fi;" }{MPLTEXT 1 208 4 "\nfi;" } {MPLTEXT 1 208 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 43 "nbpointsmodp:=proc(E,p) local N, i, fx, x;" }{MPLTEXT 1 207 7 "\n N:=1;" }{MPLTEXT 1 207 25 "\n for i from 0 to p-1 do " } {MPLTEXT 1 207 39 "\n fx:=subs(x=i,x^3+E[1]*x+E[2]) mod p;" } {MPLTEXT 1 207 24 "\n if fx=0 then N:=N+1;" }{MPLTEXT 1 207 40 "\n \+ elif numtheory[quadres](fx,p)=1 then" }{MPLTEXT 1 207 11 "\n N:=N+2 ;" }{MPLTEXT 1 207 7 "\n fi;" }{MPLTEXT 1 207 5 "\n od;" }{MPLTEXT 1 207 11 "\nRETURN(N);" }{MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 24 "appartmodp:=proc(E,P,p);" }{MPLTEXT 1 208 36 "\n if P=Origine then RETURN(true);fi;" }{MPLTEXT 1 208 88 " \n if P[2]^2 mod p = P[1]^3+E[1]*P[1]+E[2] mod p then RETURN(true) els e RETURN(false);fi;" }{MPLTEXT 1 208 5 "\nend:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 44 "somme1modp:=proc(E,P,Q,p) local alpha,x3,y3 ;" }{MPLTEXT 1 208 41 "\n alpha:=(Q[2]-P[2])/(Q[1]-P[1]) mod p;" } {MPLTEXT 1 208 33 "\n x3:=alpha^2-P[1]-Q[1] mod p; " }{MPLTEXT 1 208 36 "\n y3:=-P[2]+alpha*(P[1]-x3) mod p;" }{MPLTEXT 1 208 24 "\n \+ RETURN([x3,y3]);end:" }}}{EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 42 "somme2modp:=proc(E,P,p) local alpha,x3,y3;" }{MPLTEXT 1 208 42 "\n alpha:=(3*P[1]^2+E[1])/(2*P[2]) mod p;" }{MPLTEXT 1 208 30 "\n x3 :=alpha^2-2*P[1] mod p; " }{MPLTEXT 1 208 36 "\n y3:=-P[2]+alpha*(P[ 1]-x3) mod p;" }{MPLTEXT 1 208 24 "\n RETURN([x3,y3]);end:" }}} {EXCHG {PARA 204 "> " 0 "" {MPLTEXT 1 208 44 "sommemodp:=proc(E,P,Q,p) local alpha, x3,y3;" }{MPLTEXT 1 208 44 "\n if deltaE(E) mod p = 0 th en RETURN(FAIL) :" }{MPLTEXT 1 208 6 "\n else" }{MPLTEXT 1 208 16 "\n \+ if (P=Origine" }{MPLTEXT 1 208 31 "\n or appartmodp(E,P,p)=true)" }{MPLTEXT 1 208 19 "\n and (Q=Origine" }{MPLTEXT 1 208 32 "\n or appartmodp(E,Q,p)=true) " }{MPLTEXT 1 208 7 "\n then" }{MPLTEXT 1 208 16 "\n if P<>Origine" }{MPLTEXT 1 208 22 "\n and Q<>Origine then " }{MPLTEXT 1 208 51 "\n if P[1]<>Q[1] then RETURN(somme1modp(E,P,Q, p));" }{MPLTEXT 1 208 63 "\n elif P[2]=Q[2] and Q[2]<> 0 then RETURN (somme2modp(E,P,p));" }{MPLTEXT 1 208 25 "\n else RETURN(Origine)" }{MPLTEXT 1 208 9 "\n fi; " }{MPLTEXT 1 208 23 "\n elif P=Origine \+ then " }{MPLTEXT 1 208 13 "\n RETURN(Q);" }{MPLTEXT 1 208 18 "\n els e RETURN(P);" }{MPLTEXT 1 208 6 "\n fi;" }{MPLTEXT 1 208 21 "\n else \+ RETURN(false);" }{MPLTEXT 1 208 5 "\n fi;" }{MPLTEXT 1 208 4 "\nfi;" } {MPLTEXT 1 208 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 33 "ordremodp:=proc(E,P,p) local n,Q;" }{MPLTEXT 1 207 49 "\nif no t(appartmodp(E,P,p)) then RETURN(FAIL) else" }{MPLTEXT 1 207 14 "\n n :=1; Q:=P;" }{MPLTEXT 1 207 22 "\n while Q<>Origine do" }{MPLTEXT 1 207 37 "\n n:=n+1; Q:=sommemodp(E,Q,P,p); od;" }{MPLTEXT 1 207 13 "\n RETURN(n);" }{MPLTEXT 1 207 6 "\n fi;" }{MPLTEXT 1 207 5 "\nend:" } }}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 50 "pointsmodp:=proc(E,p) \+ local N, L, i, fx, x, y, o;" }{MPLTEXT 1 207 24 "\n L:=[[Origine,1]]; N:=1;" }{MPLTEXT 1 207 25 "\n for i from 0 to p-1 do " }{MPLTEXT 1 207 39 "\n fx:=subs(x=i,x^3+E[1]*x+E[2]) mod p;" }{MPLTEXT 1 207 45 " \n if fx=0 then L:=[op(L),[[i,0],2]]; N:=N+1" }{MPLTEXT 1 207 35 "\n else y:=numtheory[msqrt](fx,p);" }{MPLTEXT 1 207 88 "\n if y<>F AIL then o:=ordremodp(E,[i,y],p); L:=[op(L),[[i,y],o],[[i,-y],o]]; N: =N+2;" }{MPLTEXT 1 207 9 "\n fi;" }{MPLTEXT 1 207 7 "\n fi;" } {MPLTEXT 1 207 5 "\n od;" }{MPLTEXT 1 207 15 "\nRETURN([N,L]);" } {MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 34 "candidatsy:=proc(E) local L,r,i,d;" }{MPLTEXT 1 207 41 "\n L: =ifactors(4*E[1]^3+27*E[2]^2); r:=1;" }{MPLTEXT 1 207 46 "\n for d in L[2] do r:=r*d[1]^iquo(d[2],2);od;" }{MPLTEXT 1 207 42 "\n RETURN([0 ,op(numtheory[divisors](r))]);" }{MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 36 "trouverx:=proc(E,y) local x,sol ,L,d;" }{MPLTEXT 1 207 37 "\nsol:=\{solve(y^2=x^3+E[1]*x+E[2],x)\};" } {MPLTEXT 1 207 69 "\nL:=[]; for d in sol do if type(d,integer) then L: =[op(L),d]; fi; od;" }{MPLTEXT 1 207 11 "\nRETURN(L);" }{MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 41 "ordres :=proc(E) local Ly,y,x,ctors,N,M,t;" }{MPLTEXT 1 207 38 "\nif deltaE(E )=0 then RETURN(FAIL) else" }{MPLTEXT 1 207 30 "\nctors:=[]; Ly:=candi datsy(E);" }{MPLTEXT 1 207 75 "\nfor y in Ly do for x in trouverx(E,y) do ctors:=[op(ctors),[x,y]]; od; od;" }{MPLTEXT 1 207 12 "\nN:=1; M:= 0;" }{MPLTEXT 1 207 18 "\nfor t in ctors do" }{MPLTEXT 1 207 33 "\n i f t[2]=0 then N:=N+1; M:=M+1;" }{MPLTEXT 1 207 46 "\n else if ordre (E,t)<>infinity then N:=N+2;" }{MPLTEXT 1 207 13 "\n fi;" } {MPLTEXT 1 207 6 "\n fi;" }{MPLTEXT 1 207 4 "\nod;" }{MPLTEXT 1 207 15 "\nRETURN([N,M]);" }{MPLTEXT 1 207 4 "\nfi;" }{MPLTEXT 1 207 5 "\ne nd:" }{MPLTEXT 1 207 3 "\n " }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 27 "ordre:=proc(E,P) local n,Q;" }{MPLTEXT 1 207 43 "\nif not(ap part(E,P)) then RETURN(FAIL) else" }{MPLTEXT 1 207 14 "\n n:=1; Q:=P; " }{MPLTEXT 1 207 54 "\n while type(Q[1],integer) and n<12 and Q<>Ori gine do" }{MPLTEXT 1 207 31 "\n n:=n+1; Q:=somme(E,Q,P); od;" } {MPLTEXT 1 207 53 "\n if Q=Origine then RETURN(n) else RETURN(infinit y);" }{MPLTEXT 1 207 6 "\n fi;" }{MPLTEXT 1 207 4 "\nfi;" }{MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 50 "Nage llLutz:=proc(E) local Ly,ctors,tors,x,y,t,N,o;" }{MPLTEXT 1 207 38 "\n if deltaE(E)=0 then RETURN(FAIL) else" }{MPLTEXT 1 207 30 "\nctors:=[] ; Ly:=candidatsy(E);" }{MPLTEXT 1 207 75 "\nfor y in Ly do for x in tr ouverx(E,y) do ctors:=[op(ctors),[x,y]]; od; od;" }{MPLTEXT 1 207 28 " \ntors:=[[Origine,1]]; N:=1; " }{MPLTEXT 1 207 18 "\nfor t in ctors do " }{MPLTEXT 1 207 49 "\n if t[2]=0 then tors:=[op(tors),[t,2]]; N:=N+ 1;" }{MPLTEXT 1 207 24 "\n else o:=ordre(E,t);" }{MPLTEXT 1 207 73 "\n if o<>infinity then tors:=[op(tors),[t,o],[[t[1],-t[2]],o]]; N: =N+2;" }{MPLTEXT 1 207 8 "\n fi;" }{MPLTEXT 1 207 6 "\n fi;" } {MPLTEXT 1 207 4 "\nod;" }{MPLTEXT 1 207 22 "\nRETURN([N,op(tors)]);" }{MPLTEXT 1 207 4 "\nfi;" }{MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 30 "transf:=proc(f) local F,a,b,c;" } {MPLTEXT 1 207 20 "\n F:=-lhs(f)+rhs(f);" }{MPLTEXT 1 207 17 "\n a:=co eff(F,y) ;" }{MPLTEXT 1 207 14 "\n if a<>0 then" }{MPLTEXT 1 207 29 " \n F:=expand(subs(y=y+a/2,F)) " }{MPLTEXT 1 207 5 "\n fi;" }{MPLTEXT 1 207 26 "\n b:=coeff(coeff(F,x),y) ;" }{MPLTEXT 1 207 14 "\n if b<>0 \+ then" }{MPLTEXT 1 207 31 "\n F:=expand(subs(y=y+b*x/2,F)) " }{MPLTEXT 1 207 5 "\n fi;" }{MPLTEXT 1 207 18 "\n c:=coeff(F,x^2);" }{MPLTEXT 1 207 14 "\n if c<>0 then" }{MPLTEXT 1 207 28 "\n F:=expand(subs(x=x-c/3 ,F))" }{MPLTEXT 1 207 5 "\n fi;" }{MPLTEXT 1 207 37 "\n RETURN(y^2=sor t(algsubs(y^2=0,F)));" }{MPLTEXT 1 207 5 "\nend:" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 100 "ordres([0,3]); ordres([1,0]); ordres([-4 3,166]); ordres([-44091,3304854]); ordres([-12987,-263466]);" }}} {EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 110 "x:='x';y:='y'; eq:=tran sf(y^2-y=x^3-x^2); ifactor(108); eq:=6^6*subs(x=x/6^2,y=y/6^3,eq); ord res([-432,8208]);" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 106 "e q:=transf(y^2+x*y+y=x^3-x^2-14*x+29); ifactor(32); eq:=2^6*subs(x=x/2^ 2,y=y/2^3,eq); ordres([-219,1654]);" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 106 "eq:=transf(y^2+x*y=x^3-45*x+81); ifactor(864); eq: =6^6*subs(x=x/6^2,y=y/6^3,eq); ordres([-58347,3954150]);" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 108 "eq:=transf(y^2+43*x*y-210*y=x^ 3-210*x^2); eq:=6^6*subs(x=x/6^2,y=y/6^3,eq); ordres([-33339627,736978 52646]);" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 96 "eq:=transf( y^2+5*x*y-6*y=x^3-3*x^2); eq:=6^6*subs(x=x/6^2,y=y/6^3,eq); ordres([-2 4003,1296702]);" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 104 "eq: =transf(y^2+17*x*y-120*y=x^3-60*x^2); eq:=6^6*subs(x=x/6^2,y=y/6^3,eq) ; ordres([-1386747,368636886]);" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 87 "n:=2; for a from -n to n do for b from -n to n do o :=ordres([a,b]); print(a,b,o);od;od;" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 133 "n:=10; for a from -n to n do for b from -n to n do o:=ordres([a,b]); if o[1] in \{3,5,9,8,10,12\} or o[2]=3 then print(a ,b,o);fi;od;od;" }}}{EXCHG {PARA 203 "> " 0 "" {MPLTEXT 1 207 144 "n:= 50; for a from -n to n do for b from -n to n do o:=ordres([a,b]); if ( o[1] in \{5,8,10,12\} or o[2]=3) and o<>[4,3] then print(a,b,o);fi;od; od;" }}}{EXCHG {PARA 203 "" 0 "" {TEXT 209 95 "Ces cas sont difficiles \340 trouver : c'est pourquoi ils ont \351t\351 donn\351s \340 la que stion pr\351c\351dente." }}}{EXCHG {PARA 205 "" 0 "" {TEXT 210 35 "(N, M) E(Q)_tors (a,b)" }}{PARA 205 "" 0 "" {TEXT 210 29 "(1 ,0) \{0\} (0,3)" }}{PARA 205 "" 0 "" {TEXT 210 31 "(3,0) Z/3Z (-9,9)" }}{PARA 205 "" 0 "" {TEXT 210 36 "(5,0) \+ Z/5Z (-432,8208)" }}{PARA 205 "" 0 "" {TEXT 210 34 "(7,0) \+ Z/7Z (-43,166)" }}{PARA 205 "" 0 "" {TEXT 210 36 "(9,0) \+ Z/9Z (-219,1654)" }}{PARA 205 "" 0 "" {TEXT 210 30 "(2,1 ) Z/2Z (1,0)" }}{PARA 205 "" 0 "" {TEXT 210 30 "(4,1) \+ Z/4Z (1,2)" }}{PARA 205 "" 0 "" {TEXT 210 30 "(6,1) \+ Z/6Z (0,1)" }}{PARA 205 "" 0 "" {TEXT 210 41 "(8,1) Z/8 Z (-44091,3304854)" }}{PARA 205 "" 0 "" {TEXT 210 43 "(10,1) \+ Z/10Z (-58347,3954150)" }}{PARA 205 "" 0 "" {TEXT 210 50 " (12,1) Z/12Z (-33339627,73697852646)" }}{PARA 205 "" 0 " " {TEXT 210 36 "(4,3) Z/2ZXZ/2Z (-1,0)" }}{PARA 205 "" 0 "" {TEXT 210 46 "(8,3) Z/2ZXZ/4Z (-12987,-263466)" }} {PARA 205 "" 0 "" {TEXT 210 47 "(12,3) Z/2ZXZ/6Z (-24003 ,1296702)" }}{PARA 205 "" 0 "" {TEXT 210 51 "(16,3) Z/2ZXZ/8Z \+ (-1386747,368636886)" }}}{PARA 206 "" 0 "" {TEXT -1 0 "" }} {PARA 206 "" 0 "" {TEXT -1 0 "" }}{PARA 206 "" 0 "" {TEXT -1 0 "" }} {PARA 206 "" 0 "" {TEXT -1 0 "" }}{PARA 207 "" 0 "" {TEXT -1 0 "" }}} {MARK "0 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }