︠10c59fe1-2960-41ab-8628-c694de086203s︠ # Visualización de curvas elípticas. Prueba de asociatividad de la suma ︡6bd568ad-8ec1-43ab-b65b-534d26817efa︡{"done":true} ︠43f53df2-e463-49fb-b840-7820a4656b9as︠ E = EllipticCurve([-1, 10]) E ︡59c0c38a-3c6f-4ab2-88aa-f85779b29d2c︡{"stdout":"Elliptic Curve defined by y^2 = x^3 - x + 10 over Rational Field\n"}︡{"done":true} ︠04a5e309-3dca-4624-9c59-88cb9d191437︠ ︡2b1fd865-7394-4249-b22b-bcd390361780︡ ︠735254a6-888a-42c9-aade-286928e5d7d8s︠ P = E.plot(thickness=7,rgbcolor=(0.0,0.0,0.1)) ︡00e2fdc6-9a96-4308-85d2-06062a33e732︡{"done":true} ︠5e7da7a0-0eee-49cb-89fd-09c2e2859fe3︠ ︡0e8f47b2-5a74-400f-b221-9e0e15c1d1a7︡ ︠9de41fd9-e378-4e11-b3f9-ec70101f7dfds︠ P.show(figsize=[6,8]) ︡f30fb91a-4001-4299-85b3-7de67d9ef514︡{"file":{"filename":"/home/user/.sage/temp/project-2fb28c07-e779-40df-8b77-b1cb8330f85b/413/tmp_xLaRvf.svg","show":true,"text":null,"uuid":"7f7e82de-803e-46a4-854e-8764caae7c14"},"once":false}︡{"done":true} ︠a62906de-a470-4e22-8acc-f13be5f049ffs︠ E = EllipticCurve(GF(37), [1,0]) E ︡f4aec448-a27f-4bd3-b0c8-edceff44f8da︡{"stdout":"Elliptic Curve defined by y^2 = x^3 + x over Finite Field of size 37\n"}︡{"done":true} ︠f06130b7-8afb-43e4-9236-4fa871664cd1s︠ E.plot(pointsize=45) ︡f1f4a1fa-e2bf-4945-9010-ddf4ec69824b︡{"file":{"filename":"/home/user/.sage/temp/project-2fb28c07-e779-40df-8b77-b1cb8330f85b/413/tmp_T9PH4X.svg","show":true,"text":null,"uuid":"d6c54efc-5fe5-4455-9848-3015ac011cfe"},"once":false}︡{"done":true} ︠9244db61-ff0a-441d-9a35-47ec11004fa3s︠ ︡2dc47193-b21a-46fd-8dcd-afb2a28c7bf0︡ ︠34682965-7bbb-42e0-8818-a8ea26f4a011︠ ︡ef8afeae-aa40-451b-940e-a20c39c76fe4︡ ︠ec5c72ee-c3fe-43d4-a140-7137ec1fd27as︠ E = EllipticCurve([-5,4]) P = E([1,0]); Q = E([0,2]) P + Q ︡f3be7691-088c-43ae-9c03-8f9e06107dd2︡{"stdout":"(3 : 4 : 1)\n"}︡{"done":true} ︠ce8ae470-7ae7-4bde-a962-fedb08124282s︠ ︡ae823883-30bc-4d89-8268-2bf714fb0cf6︡ ︠a9521592-5a78-4961-beba-5b99e01b3180s︠ P + P ︡f0422668-fdc0-4b68-bbb1-9d683657beac︡{"stdout":"(0 : 1 : 0)\n"}︡{"done":true} ︠99c6d7f3-0325-4061-8366-21f60bffbe1bs︠ P + P + P ︡8abc7589-f17d-4da2-861a-1a172d6714ad︡{"stdout":"(1 : 0 : 1)\n"}︡{"done":true}︡ ︠13ce9c8f-0ebe-4c5d-90f6-df7b28f2fe91s︠ Q + Q ︡4eb522b1-d785-4ab0-9253-1c33a235df6d︡{"stdout":"(25/16 : -3/64 : 1)\n"}︡{"done":true}︡ ︠f7f483e7-9169-4b8e-9dec-f0edf0b3a002︠ ︡ca1704db-10eb-48c9-8024-35b8dde594f6︡ ︠61e5b3bc-49af-401a-a470-4976203c5014︠ ︡c490939f-e2ee-4107-b2d1-d59020cd18af︡ ︠61c6b52e-d5b1-4849-8833-9befe2db4e38s︠ ︡05be72de-3bb4-4df4-acb6-074704298f0c︡ ︠b0b1256c-e74f-4aac-a1ec-deb30a744095s︠ ︡b4093335-8fe6-443d-80b2-faa04bb09560︡ ︠0e12ed83-c585-4088-9169-caf7459bf6f1s︠ Q + Q + Q ︡a8494fa2-ff0c-485b-bff8-0cf03ab4422a︡{"stdout":"(96/625 : -28106/15625 : 1)\n"}︡{"done":true} ︠b7ec110f-409f-48c2-a3a0-e8f8ad18cbec︠ ︡225cadd8-8a16-43d5-8cc4-6c0118e1b6db︡{"stdout":"(352225/576 : 209039023/13824 : 1)\n"}︡{"done":true}︡ ︠e90ff9e4-7747-4973-ab73-a08b4a8d73c0s︠ R. = QQ[] R ︡6d0af838-cf78-436f-8df1-5b5039b82233︡{"stdout":"Multivariate Polynomial Ring in x1, y1, x2, y2, x3, y3, a, b over Rational Field\n"}︡{"done":true}︡ ︠f6d41b38-e583-4834-8976-824809386df2︠ b = [y1^2 - (x1^3 + a*x1 + b), y2^2 - (x2^3 + a*x2 + b), y3^2 - (x3^3 + a*x3 + b)] Q = R.quotient(rels) def op(P1,P2): x1,y1 = P1; x2,y2 = P2 lam = (y1 - y2)/(x1 - x2); nu = y1 - lam*x1 x3 = lam^2 - x1 - x2; y3 = -lam*x3 - nu return (x3, y3) ︡4e696369-a634-4925-91f9-3684a7cf3dc1︡{"done":true}︡ ︠56dfb254-e27b-493a-a53f-916e208a44a8s︠ P1 = (x1,y1); P2 = (x2,y2); P3 = (x3,y3) Z = op(P1, op(P2,P3)); W = op(op(P1,P2),P3) Z W ︡ed682c27-3a19-466a-8be3-dfeb1a178607︡{"stdout":"((-x1^3*x2^4 - x1^2*x2^5 + x1*x2^6 + x2^7 + 4*x1^3*x2^3*x3 + 3*x1^2*x2^4*x3 - 2*x1*x2^5*x3 - x2^6*x3 - 6*x1^3*x2^2*x3^2 - 2*x1^2*x2^3*x3^2 - x1*x2^4*x3^2 - 3*x2^5*x3^2 + 4*x1^3*x2*x3^3 - 2*x1^2*x2^2*x3^3 + 4*x1*x2^3*x3^3 + 3*x2^4*x3^3 - x1^3*x3^4 + 3*x1^2*x2*x3^4 - x1*x2^2*x3^4 + 3*x2^3*x3^4 - x1^2*x3^5 - 2*x1*x2*x3^5 - 3*x2^2*x3^5 + x1*x3^6 - x2*x3^6 + x3^7 + y1^2*x2^4 - 2*y1*x2^4*y2 + x1^2*x2^2*y2^2 - 2*x1*x2^3*y2^2 - 2*x2^4*y2^2 - 4*y1^2*x2^3*x3 + 2*y1*x2^3*y2*x3 - 2*x1^2*x2*y2^2*x3 + 2*x1*x2^2*y2^2*x3 + 2*x2^3*y2^2*x3 + 6*y1^2*x2^2*x3^2 + 6*y1*x2^2*y2*x3^2 + x1^2*y2^2*x3^2 + 2*x1*x2*y2^2*x3^2 + 3*x2^2*y2^2*x3^2 - 4*y1^2*x2*x3^3 - 10*y1*x2*y2*x3^3 - 2*x1*y2^2*x3^3 - 4*x2*y2^2*x3^3 + y1^2*x3^4 + 4*y1*y2*x3^4 + y2^2*x3^4 + 4*y1*x2^4*y3 - 2*x1^2*x2^2*y2*y3 + 4*x1*x2^3*y2*y3 + 2*x2^4*y2*y3 - 10*y1*x2^3*x3*y3 + 4*x1^2*x2*y2*x3*y3 - 4*x1*x2^2*y2*x3*y3 - 2*x2^3*y2*x3*y3 + 6*y1*x2^2*x3^2*y3 - 2*x1^2*y2*x3^2*y3 - 4*x1*x2*y2*x3^2*y3 + 2*y1*x2*x3^3*y3 + 4*x1*y2*x3^3*y3 - 2*x2*y2*x3^3*y3 - 2*y1*x3^4*y3 + 2*y2*x3^4*y3 + x1^2*x2^2*y3^2 - 2*x1*x2^3*y3^2 + x2^4*y3^2 - 2*x1^2*x2*x3*y3^2 + 2*x1*x2^2*x3*y3^2 - 4*x2^3*x3*y3^2 + x1^2*x3^2*y3^2 + 2*x1*x2*x3^2*y3^2 + 3*x2^2*x3^2*y3^2 - 2*x1*x3^3*y3^2 + 2*x2*x3^3*y3^2 - 2*x3^4*y3^2 + 2*y1*x2*y2^3 + x1*y2^4 + x2*y2^4 - 2*y1*y2^3*x3 - y2^4*x3 - 6*y1*x2*y2^2*y3 - 4*x1*y2^3*y3 - 2*x2*y2^3*y3 + 6*y1*y2^2*x3*y3 + 2*y2^3*x3*y3 + 6*y1*x2*y2*y3^2 + 6*x1*y2^2*y3^2 - 6*y1*y2*x3*y3^2 - 2*y1*x2*y3^3 - 4*x1*y2*y3^3 + 2*x2*y2*y3^3 + 2*y1*x3*y3^3 - 2*y2*x3*y3^3 + x1*y3^4 - x2*y3^4 + x3*y3^4)/(x1^2*x2^4 + 2*x1*x2^5 + x2^6 - 4*x1^2*x2^3*x3 - 6*x1*x2^4*x3 - 2*x2^5*x3 + 6*x1^2*x2^2*x3^2 + 4*x1*x2^3*x3^2 - x2^4*x3^2 - 4*x1^2*x2*x3^3 + 4*x1*x2^2*x3^3 + 4*x2^3*x3^3 + x1^2*x3^4 - 6*x1*x2*x3^4 - x2^2*x3^4 + 2*x1*x3^5 - 2*x2*x3^5 + x3^6 - 2*x1*x2^2*y2^2 - 2*x2^3*y2^2 + 4*x1*x2*y2^2*x3 + 2*x2^2*y2^2*x3 - 2*x1*y2^2*x3^2 + 2*x2*y2^2*x3^2 - 2*y2^2*x3^3 + 4*x1*x2^2*y2*y3 + 4*x2^3*y2*y3 - 8*x1*x2*y2*x3*y3 - 4*x2^2*y2*x3*y3 + 4*x1*y2*x3^2*y3 - 4*x2*y2*x3^2*y3 + 4*y2*x3^3*y3 - 2*x1*x2^2*y3^2 - 2*x2^3*y3^2 + 4*x1*x2*x3*y3^2 + 2*x2^2*x3*y3^2 - 2*x1*x3^2*y3^2 + 2*x2*x3^2*y3^2 - 2*x3^3*y3^2 + y2^4 - 4*y2^3*y3 + 6*y2^2*y3^2 - 4*y2*y3^3 + y3^4), (-x1^3*y1*x2^6 + 3*x1*y1*x2^8 + 2*y1*x2^9 + 2*x1^3*x2^6*y2 + 3*x1^2*x2^7*y2 - x2^9*y2 + 6*x1^3*y1*x2^5*x3 - 12*x1*y1*x2^7*x3 - 6*y1*x2^8*x3 - 6*x1^3*x2^5*y2*x3 - 6*x1^2*x2^6*y2*x3 - 15*x1^3*y1*x2^4*x3^2 + 12*x1*y1*x2^6*x3^2 - 9*x1^2*x2^5*y2*x3^2 + 6*x2^7*y2*x3^2 + 20*x1^3*y1*x2^3*x3^3 + 12*x1*y1*x2^5*x3^3 + 16*y1*x2^6*x3^3 + 20*x1^3*x2^3*y2*x3^3 + 30*x1^2*x2^4*y2*x3^3 - 2*x2^6*y2*x3^3 - 15*x1^3*y1*x2^2*x3^4 - 30*x1*y1*x2^4*x3^4 - 12*y1*x2^5*x3^4 - 30*x1^3*x2^2*y2*x3^4 - 15*x1^2*x2^3*y2*x3^4 - 12*x2^5*y2*x3^4 + 6*x1^3*y1*x2*x3^5 + 12*x1*y1*x2^3*x3^5 - 12*y1*x2^4*x3^5 + 18*x1^3*x2*y2*x3^5 - 18*x1^2*x2^2*y2*x3^5 + 6*x2^4*y2*x3^5 - x1^3*y1*x3^6 + 12*x1*y1*x2^2*x3^6 + 16*y1*x2^3*x3^6 - 4*x1^3*y2*x3^6 + 21*x1^2*x2*y2*x3^6 + 10*x2^3*y2*x3^6 - 12*x1*y1*x2*x3^7 - 6*x1^2*y2*x3^7 - 6*x2^2*y2*x3^7 + 3*x1*y1*x3^8 - 6*y1*x2*x3^8 - 3*x2*y2*x3^8 + 2*y1*x3^9 + 2*y2*x3^9 - 4*x1^3*x2^6*y3 - 6*x1^2*x2^7*y3 + 2*x2^9*y3 + 18*x1^3*x2^5*x3*y3 + 21*x1^2*x2^6*x3*y3 - 3*x2^8*x3*y3 - 30*x1^3*x2^4*x3^2*y3 - 18*x1^2*x2^5*x3^2*y3 - 6*x2^7*x3^2*y3 + 20*x1^3*x2^3*x3^3*y3 - 15*x1^2*x2^4*x3^3*y3 + 10*x2^6*x3^3*y3 + 30*x1^2*x2^3*x3^4*y3 + 6*x2^5*x3^4*y3 - 6*x1^3*x2*x3^5*y3 - 9*x1^2*x2^2*x3^5*y3 - 12*x2^4*x3^5*y3 + 2*x1^3*x3^6*y3 - 6*x1^2*x2*x3^6*y3 - 2*x2^3*x3^6*y3 + 3*x1^2*x3^7*y3 + 6*x2^2*x3^7*y3 - x3^9*y3 + y1^3*x2^6 - 3*y1^2*x2^6*y2 - 6*x1*y1*x2^5*y2^2 - 3*y1*x2^6*y2^2 - 2*x1^3*x2^3*y2^3 - 6*x1^2*x2^4*y2^3 + 3*x2^6*y2^3 - 6*y1^3*x2^5*x3 + 9*y1^2*x2^5*y2*x3 + 18*x1*y1*x2^4*y2^2*x3 + 12*y1*x2^5*y2^2*x3 + 6*x1^3*x2^2*y2^3*x3 + 9*x1^2*x2^3*y2^3*x3 + 15*y1^3*x2^4*x3^2 - 12*x1*y1*x2^3*y2^2*x3^2 - 12*y1*x2^4*y2^2*x3^2 - 6*x1^3*x2*y2^3*x3^2 + 9*x1^2*x2^2*y2^3*x3^2 - 12*x2^4*y2^3*x3^2 - 20*y1^3*x2^3*x3^3 - 30*y1^2*x2^3*y2*x3^3 - 12*x1*y1*x2^2*y2^2*x3^3 - 12*y1*x2^3*y2^2*x3^3 + 2*x1^3*y2^3*x3^3 - 21*x1^2*x2*y2^3*x3^3 + 5*x2^3*y2^3*x3^3 + 15*y1^3*x2^2*x3^4 + 45*y1^2*x2^2*y2*x3^4 + 18*x1*y1*x2*y2^2*x3^4 + 33*y1*x2^2*y2^2*x3^4 + 9*x1^2*y2^3*x3^4 + 12*x2^2*y2^3*x3^4 - 6*y1^3*x2*x3^5 - 27*y1^2*x2*y2*x3^5 - 6*x1*y1*y2^2*x3^5 - 24*y1*x2*y2^2*x3^5 - 9*x2*y2^3*x3^5 + y1^3*x3^6 + 6*y1^2*y2*x3^6 + 6*y1*y2^2*x3^6 + y2^3*x3^6 + 6*y1^2*x2^6*y3 + 12*x1*y1*x2^5*y2*y3 + 6*x1^3*x2^3*y2^2*y3 + 21*x1^2*x2^4*y2^2*y3 - 9*x2^6*y2^2*y3 - 27*y1^2*x2^5*x3*y3 - 36*x1*y1*x2^4*y2*x3*y3 - 6*y1*x2^5*y2*x3*y3 - 18*x1^3*x2^2*y2^2*x3*y3 - 39*x1^2*x2^3*y2^2*x3*y3 + 6*x2^5*y2^2*x3*y3 + 45*y1^2*x2^4*x3^2*y3 + 24*x1*y1*x2^3*y2*x3^2*y3 + 24*y1*x2^4*y2*x3^2*y3 + 18*x1^3*x2*y2^2*x3^2*y3 - 9*x1^2*x2^2*y2^2*x3^2*y3 + 21*x2^4*y2^2*x3^2*y3 - 30*y1^2*x2^3*x3^3*y3 + 24*x1*y1*x2^2*y2*x3^3*y3 - 36*y1*x2^3*y2*x3^3*y3 - 6*x1^3*y2^2*x3^3*y3 + 51*x1^2*x2*y2^2*x3^3*y3 - 15*x2^3*y2^2*x3^3*y3 - 36*x1*y1*x2*y2*x3^4*y3 + 24*y1*x2^2*y2*x3^4*y3 - 24*x1^2*y2^2*x3^4*y3 - 6*x2^2*y2^2*x3^4*y3 + 9*y1^2*x2*x3^5*y3 + 12*x1*y1*y2*x3^5*y3 - 6*y1*x2*y2*x3^5*y3 - 3*x2*y2^2*x3^5*y3 - 3*y1^2*x3^6*y3 + 6*y2^2*x3^6*y3 - 6*x1*y1*x2^5*y3^2 + 6*y1*x2^6*y3^2 - 6*x1^3*x2^3*y2*y3^2 - 24*x1^2*x2^4*y2*y3^2 + 6*x2^6*y2*y3^2 + 18*x1*y1*x2^4*x3*y3^2 - 24*y1*x2^5*x3*y3^2 + 18*x1^3*x2^2*y2*x3*y3^2 + 51*x1^2*x2^3*y2*x3*y3^2 - 3*x2^5*y2*x3*y3^2 - 12*x1*y1*x2^3*x3^2*y3^2 + 33*y1*x2^4*x3^2*y3^2 - 18*x1^3*x2*y2*x3^2*y3^2 - 9*x1^2*x2^2*y2*x3^2*y3^2 - 6*x2^4*y2*x3^2*y3^2 - 12*x1*y1*x2^2*x3^3*y3^2 - 12*y1*x2^3*x3^3*y3^2 + 6*x1^3*y2*x3^3*y3^2 - 39*x1^2*x2*y2*x3^3*y3^2 - 15*x2^3*y2*x3^3*y3^2 + 18*x1*y1*x2*x3^4*y3^2 - 12*y1*x2^2*x3^4*y3^2 + 21*x1^2*y2*x3^4*y3^2 + 21*x2^2*y2*x3^4*y3^2 - 6*x1*y1*x3^5*y3^2 + 12*y1*x2*x3^5*y3^2 + 6*x2*y2*x3^5*y3^2 - 3*y1*x3^6*y3^2 - 9*y2*x3^6*y3^2 + 2*x1^3*x2^3*y3^3 + 9*x1^2*x2^4*y3^3 + x2^6*y3^3 - 6*x1^3*x2^2*x3*y3^3 - 21*x1^2*x2^3*x3*y3^3 - 9*x2^5*x3*y3^3 + 6*x1^3*x2*x3^2*y3^3 + 9*x1^2*x2^2*x3^2*y3^3 + 12*x2^4*x3^2*y3^3 - 2*x1^3*x3^3*y3^3 + 9*x1^2*x2*x3^3*y3^3 + 5*x2^3*x3^3*y3^3 - 6*x1^2*x3^4*y3^3 - 12*x2^2*x3^4*y3^3 + 3*x3^6*y3^3 + 3*y1^2*x2^3*y2^3 + 3*x1*y1*x2^2*y2^4 + 3*x1^2*x2*y2^5 - 3*x2^3*y2^5 - 9*y1^2*x2^2*y2^3*x3 - 6*x1*y1*x2*y2^4*x3 - 6*y1*x2^2*y2^4*x3 - 3*x1^2*y2^5*x3 + 9*y1^2*x2*y2^3*x3^2 + 3*x1*y1*y2^4*x3^2 + 12*y1*x2*y2^4*x3^2 + 6*x2*y2^5*x3^2 - 3*y1^2*y2^3*x3^3 - 6*y1*y2^4*x3^3 - 3*y2^5*x3^3 - 9*y1^2*x2^3*y2^2*y3 - 12*x1*y1*x2^2*y2^3*y3 + 6*y1*x2^3*y2^3*y3 - 15*x1^2*x2*y2^4*y3 + 12*x2^3*y2^4*y3 + 27*y1^2*x2^2*y2^2*x3*y3 + 24*x1*y1*x2*y2^3*x3*y3 + 6*y1*x2^2*y2^3*x3*y3 + 15*x1^2*y2^4*x3*y3 - 3*x2^2*y2^4*x3*y3 - 27*y1^2*x2*y2^2*x3^2*y3 - 12*x1*y1*y2^3*x3^2*y3 - 30*y1*x2*y2^3*x3^2*y3 - 15*x2*y2^4*x3^2*y3 + 9*y1^2*y2^2*x3^3*y3 + 18*y1*y2^3*x3^3*y3 + 6*y2^4*x3^3*y3 + 9*y1^2*x2^3*y2*y3^2 + 18*x1*y1*x2^2*y2^2*y3^2 - 18*y1*x2^3*y2^2*y3^2 + 30*x1^2*x2*y2^3*y3^2 - 15*x2^3*y2^3*y3^2 - 27*y1^2*x2^2*y2*x3*y3^2 - 36*x1*y1*x2*y2^2*x3*y3^2 + 18*y1*x2^2*y2^2*x3*y3^2 - 30*x1^2*y2^3*x3*y3^2 + 3*x2^2*y2^3*x3*y3^2 + 27*y1^2*x2*y2*x3^2*y3^2 + 18*x1*y1*y2^2*x3^2*y3^2 + 18*y1*x2*y2^2*x3^2*y3^2 + 9*x2*y2^3*x3^2*y3^2 - 9*y1^2*y2*x3^3*y3^2 - 18*y1*y2^2*x3^3*y3^2 + 3*y2^3*x3^3*y3^2 - 3*y1^2*x2^3*y3^3 - 12*x1*y1*x2^2*y2*y3^3 + 18*y1*x2^3*y2*y3^3 - 30*x1^2*x2*y2^2*y3^3 + 3*x2^3*y2^2*y3^3 + 9*y1^2*x2^2*x3*y3^3 + 24*x1*y1*x2*y2*x3*y3^3 - 30*y1*x2^2*y2*x3*y3^3 + 30*x1^2*y2^2*x3*y3^3 + 9*x2^2*y2^2*x3*y3^3 - 9*y1^2*x2*x3^2*y3^3 - 12*x1*y1*y2*x3^2*y3^3 + 6*y1*x2*y2*x3^2*y3^3 + 3*x2*y2^2*x3^2*y3^3 + 3*y1^2*x3^3*y3^3 + 6*y1*y2*x3^3*y3^3 - 15*y2^2*x3^3*y3^3 + 3*x1*y1*x2^2*y3^4 - 6*y1*x2^3*y3^4 + 15*x1^2*x2*y2*y3^4 + 6*x2^3*y2*y3^4 - 6*x1*y1*x2*x3*y3^4 + 12*y1*x2^2*x3*y3^4 - 15*x1^2*y2*x3*y3^4 - 15*x2^2*y2*x3*y3^4 + 3*x1*y1*x3^2*y3^4 - 6*y1*x2*x3^2*y3^4 - 3*x2*y2*x3^2*y3^4 + 12*y2*x3^3*y3^4 - 3*x1^2*x2*y3^5 - 3*x2^3*y3^5 + 3*x1^2*x3*y3^5 + 6*x2^2*x3*y3^5 - 3*x3^3*y3^5 + y1*y2^6 + y2^7 - 6*y1*y2^5*y3 - 5*y2^6*y3 + 15*y1*y2^4*y3^2 + 9*y2^5*y3^2 - 20*y1*y2^3*y3^3 - 5*y2^4*y3^3 + 15*y1*y2^2*y3^4 - 5*y2^3*y3^4 - 6*y1*y2*y3^5 + 9*y2^2*y3^5 + y1*y3^6 - 5*y2*y3^6 + y3^7)/(-x1^3*x2^6 - 3*x1^2*x2^7 - 3*x1*x2^8 - x2^9 + 6*x1^3*x2^5*x3 + 15*x1^2*x2^6*x3 + 12*x1*x2^7*x3 + 3*x2^8*x3 - 15*x1^3*x2^4*x3^2 - 27*x1^2*x2^5*x3^2 - 12*x1*x2^6*x3^2 + 20*x1^3*x2^3*x3^3 + 15*x1^2*x2^4*x3^3 - 12*x1*x2^5*x3^3 - 8*x2^6*x3^3 - 15*x1^3*x2^2*x3^4 + 15*x1^2*x2^3*x3^4 + 30*x1*x2^4*x3^4 + 6*x2^5*x3^4 + 6*x1^3*x2*x3^5 - 27*x1^2*x2^2*x3^5 - 12*x1*x2^3*x3^5 + 6*x2^4*x3^5 - x1^3*x3^6 + 15*x1^2*x2*x3^6 - 12*x1*x2^2*x3^6 - 8*x2^3*x3^6 - 3*x1^2*x3^7 + 12*x1*x2*x3^7 - 3*x1*x3^8 + 3*x2*x3^8 - x3^9 + 3*x1^2*x2^4*y2^2 + 6*x1*x2^5*y2^2 + 3*x2^6*y2^2 - 12*x1^2*x2^3*y2^2*x3 - 18*x1*x2^4*y2^2*x3 - 6*x2^5*y2^2*x3 + 18*x1^2*x2^2*y2^2*x3^2 + 12*x1*x2^3*y2^2*x3^2 - 3*x2^4*y2^2*x3^2 - 12*x1^2*x2*y2^2*x3^3 + 12*x1*x2^2*y2^2*x3^3 + 12*x2^3*y2^2*x3^3 + 3*x1^2*y2^2*x3^4 - 18*x1*x2*y2^2*x3^4 - 3*x2^2*y2^2*x3^4 + 6*x1*y2^2*x3^5 - 6*x2*y2^2*x3^5 + 3*y2^2*x3^6 - 6*x1^2*x2^4*y2*y3 - 12*x1*x2^5*y2*y3 - 6*x2^6*y2*y3 + 24*x1^2*x2^3*y2*x3*y3 + 36*x1*x2^4*y2*x3*y3 + 12*x2^5*y2*x3*y3 - 36*x1^2*x2^2*y2*x3^2*y3 - 24*x1*x2^3*y2*x3^2*y3 + 6*x2^4*y2*x3^2*y3 + 24*x1^2*x2*y2*x3^3*y3 - 24*x1*x2^2*y2*x3^3*y3 - 24*x2^3*y2*x3^3*y3 - 6*x1^2*y2*x3^4*y3 + 36*x1*x2*y2*x3^4*y3 + 6*x2^2*y2*x3^4*y3 - 12*x1*y2*x3^5*y3 + 12*x2*y2*x3^5*y3 - 6*y2*x3^6*y3 + 3*x1^2*x2^4*y3^2 + 6*x1*x2^5*y3^2 + 3*x2^6*y3^2 - 12*x1^2*x2^3*x3*y3^2 - 18*x1*x2^4*x3*y3^2 - 6*x2^5*x3*y3^2 + 18*x1^2*x2^2*x3^2*y3^2 + 12*x1*x2^3*x3^2*y3^2 - 3*x2^4*x3^2*y3^2 - 12*x1^2*x2*x3^3*y3^2 + 12*x1*x2^2*x3^3*y3^2 + 12*x2^3*x3^3*y3^2 + 3*x1^2*x3^4*y3^2 - 18*x1*x2*x3^4*y3^2 - 3*x2^2*x3^4*y3^2 + 6*x1*x3^5*y3^2 - 6*x2*x3^5*y3^2 + 3*x3^6*y3^2 - 3*x1*x2^2*y2^4 - 3*x2^3*y2^4 + 6*x1*x2*y2^4*x3 + 3*x2^2*y2^4*x3 - 3*x1*y2^4*x3^2 + 3*x2*y2^4*x3^2 - 3*y2^4*x3^3 + 12*x1*x2^2*y2^3*y3 + 12*x2^3*y2^3*y3 - 24*x1*x2*y2^3*x3*y3 - 12*x2^2*y2^3*x3*y3 + 12*x1*y2^3*x3^2*y3 - 12*x2*y2^3*x3^2*y3 + 12*y2^3*x3^3*y3 - 18*x1*x2^2*y2^2*y3^2 - 18*x2^3*y2^2*y3^2 + 36*x1*x2*y2^2*x3*y3^2 + 18*x2^2*y2^2*x3*y3^2 - 18*x1*y2^2*x3^2*y3^2 + 18*x2*y2^2*x3^2*y3^2 - 18*y2^2*x3^3*y3^2 + 12*x1*x2^2*y2*y3^3 + 12*x2^3*y2*y3^3 - 24*x1*x2*y2*x3*y3^3 - 12*x2^2*y2*x3*y3^3 + 12*x1*y2*x3^2*y3^3 - 12*x2*y2*x3^2*y3^3 + 12*y2*x3^3*y3^3 - 3*x1*x2^2*y3^4 - 3*x2^3*y3^4 + 6*x1*x2*x3*y3^4 + 3*x2^2*x3*y3^4 - 3*x1*x3^2*y3^4 + 3*x2*x3^2*y3^4 - 3*x3^3*y3^4 + y2^6 - 6*y2^5*y3 + 15*y2^4*y3^2 - 20*y2^3*y3^3 + 15*y2^2*y3^4 - 6*y2*y3^5 + y3^6))"}︡{"stdout":"\n"}︡{"stdout":"((x1^7 - x1^6*x2 - 3*x1^5*x2^2 + 3*x1^4*x2^3 + 3*x1^3*x2^4 - 3*x1^2*x2^5 - x1*x2^6 + x2^7 + x1^6*x3 - 2*x1^5*x2*x3 - x1^4*x2^2*x3 + 4*x1^3*x2^3*x3 - x1^2*x2^4*x3 - 2*x1*x2^5*x3 + x2^6*x3 - x1^5*x3^2 + 3*x1^4*x2*x3^2 - 2*x1^3*x2^2*x3^2 - 2*x1^2*x2^3*x3^2 + 3*x1*x2^4*x3^2 - x2^5*x3^2 - x1^4*x3^3 + 4*x1^3*x2*x3^3 - 6*x1^2*x2^2*x3^3 + 4*x1*x2^3*x3^3 - x2^4*x3^3 - 2*x1^4*y1^2 + 2*x1^3*y1^2*x2 + 3*x1^2*y1^2*x2^2 - 4*x1*y1^2*x2^3 + y1^2*x2^4 + 2*x1^4*y1*y2 - 2*x1^3*y1*x2*y2 - 2*x1*y1*x2^3*y2 + 2*y1*x2^4*y2 + x1^4*y2^2 - 4*x1^3*x2*y2^2 + 3*x1^2*x2^2*y2^2 + 2*x1*x2^3*y2^2 - 2*x2^4*y2^2 - 2*x1^3*y1^2*x3 + 2*x1^2*y1^2*x2*x3 + 2*x1*y1^2*x2^2*x3 - 2*y1^2*x2^3*x3 + 4*x1^3*y1*y2*x3 - 4*x1^2*y1*x2*y2*x3 - 4*x1*y1*x2^2*y2*x3 + 4*y1*x2^3*y2*x3 - 2*x1^3*y2^2*x3 + 2*x1^2*x2*y2^2*x3 + 2*x1*x2^2*y2^2*x3 - 2*x2^3*y2^2*x3 + x1^2*y1^2*x3^2 - 2*x1*y1^2*x2*x3^2 + y1^2*x2^2*x3^2 - 2*x1^2*y1*y2*x3^2 + 4*x1*y1*x2*y2*x3^2 - 2*y1*x2^2*y2*x3^2 + x1^2*y2^2*x3^2 - 2*x1*x2*y2^2*x3^2 + x2^2*y2^2*x3^2 - 2*x1^4*y1*y3 + 2*x1^3*y1*x2*y3 + 6*x1^2*y1*x2^2*y3 - 10*x1*y1*x2^3*y3 + 4*y1*x2^4*y3 + 4*x1^4*y2*y3 - 10*x1^3*x2*y2*y3 + 6*x1^2*x2^2*y2*y3 + 2*x1*x2^3*y2*y3 - 2*x2^4*y2*y3 + x1^4*y3^2 - 4*x1^3*x2*y3^2 + 6*x1^2*x2^2*y3^2 - 4*x1*x2^3*y3^2 + x2^4*y3^2 + x1*y1^4 - y1^4*x2 - 2*x1*y1^3*y2 + 2*y1^3*x2*y2 + 2*x1*y1*y2^3 - 2*y1*x2*y2^3 - x1*y2^4 + x2*y2^4 + y1^4*x3 - 4*y1^3*y2*x3 + 6*y1^2*y2^2*x3 - 4*y1*y2^3*x3 + y2^4*x3 + 2*x1*y1^3*y3 - 2*y1^3*x2*y3 - 6*x1*y1^2*y2*y3 + 6*y1^2*x2*y2*y3 + 6*x1*y1*y2^2*y3 - 6*y1*x2*y2^2*y3 - 2*x1*y2^3*y3 + 2*x2*y2^3*y3)/(x1^6 - 2*x1^5*x2 - x1^4*x2^2 + 4*x1^3*x2^3 - x1^2*x2^4 - 2*x1*x2^5 + x2^6 + 2*x1^5*x3 - 6*x1^4*x2*x3 + 4*x1^3*x2^2*x3 + 4*x1^2*x2^3*x3 - 6*x1*x2^4*x3 + 2*x2^5*x3 + x1^4*x3^2 - 4*x1^3*x2*x3^2 + 6*x1^2*x2^2*x3^2 - 4*x1*x2^3*x3^2 + x2^4*x3^2 - 2*x1^3*y1^2 + 2*x1^2*y1^2*x2 + 2*x1*y1^2*x2^2 - 2*y1^2*x2^3 + 4*x1^3*y1*y2 - 4*x1^2*y1*x2*y2 - 4*x1*y1*x2^2*y2 + 4*y1*x2^3*y2 - 2*x1^3*y2^2 + 2*x1^2*x2*y2^2 + 2*x1*x2^2*y2^2 - 2*x2^3*y2^2 - 2*x1^2*y1^2*x3 + 4*x1*y1^2*x2*x3 - 2*y1^2*x2^2*x3 + 4*x1^2*y1*y2*x3 - 8*x1*y1*x2*y2*x3 + 4*y1*x2^2*y2*x3 - 2*x1^2*y2^2*x3 + 4*x1*x2*y2^2*x3 - 2*x2^2*y2^2*x3 + y1^4 - 4*y1^3*y2 + 6*y1^2*y2^2 - 4*y1*y2^3 + y2^4), (x1^9*y1 - 6*x1^7*y1*x2^2 + 2*x1^6*y1*x2^3 + 12*x1^5*y1*x2^4 - 6*x1^4*y1*x2^5 - 10*x1^3*y1*x2^6 + 6*x1^2*y1*x2^7 + 3*x1*y1*x2^8 - 2*y1*x2^9 - 2*x1^9*y2 + 3*x1^8*x2*y2 + 6*x1^7*x2^2*y2 - 10*x1^6*x2^3*y2 - 6*x1^5*x2^4*y2 + 12*x1^4*x2^5*y2 + 2*x1^3*x2^6*y2 - 6*x1^2*x2^7*y2 + x2^9*y2 - 3*x1^7*y1*x3^2 + 6*x1^6*y1*x2*x3^2 + 9*x1^5*y1*x2^2*x3^2 - 30*x1^4*y1*x2^3*x3^2 + 15*x1^3*y1*x2^4*x3^2 + 18*x1^2*y1*x2^5*x3^2 - 21*x1*y1*x2^6*x3^2 + 6*y1*x2^7*x3^2 + 6*x1^7*y2*x3^2 - 21*x1^6*x2*y2*x3^2 + 18*x1^5*x2^2*y2*x3^2 + 15*x1^4*x2^3*y2*x3^2 - 30*x1^3*x2^4*y2*x3^2 + 9*x1^2*x2^5*y2*x3^2 + 6*x1*x2^6*y2*x3^2 - 3*x2^7*y2*x3^2 - 2*x1^6*y1*x3^3 + 6*x1^5*y1*x2*x3^3 - 20*x1^3*y1*x2^3*x3^3 + 30*x1^2*y1*x2^4*x3^3 - 18*x1*y1*x2^5*x3^3 + 4*y1*x2^6*x3^3 + 4*x1^6*y2*x3^3 - 18*x1^5*x2*y2*x3^3 + 30*x1^4*x2^2*y2*x3^3 - 20*x1^3*x2^3*y2*x3^3 + 6*x1*x2^5*y2*x3^3 - 2*x2^6*y2*x3^3 - 2*x1^9*y3 + 6*x1^8*x2*y3 - 16*x1^6*x2^3*y3 + 12*x1^5*x2^4*y3 + 12*x1^4*x2^5*y3 - 16*x1^3*x2^6*y3 + 6*x1*x2^8*y3 - 2*x2^9*y3 - 3*x1^8*x3*y3 + 12*x1^7*x2*x3*y3 - 12*x1^6*x2^2*x3*y3 - 12*x1^5*x2^3*x3*y3 + 30*x1^4*x2^4*x3*y3 - 12*x1^3*x2^5*x3*y3 - 12*x1^2*x2^6*x3*y3 + 12*x1*x2^7*x3*y3 - 3*x2^8*x3*y3 + x1^6*x3^3*y3 - 6*x1^5*x2*x3^3*y3 + 15*x1^4*x2^2*x3^3*y3 - 20*x1^3*x2^3*x3^3*y3 + 15*x1^2*x2^4*x3^3*y3 - 6*x1*x2^5*x3^3*y3 + x2^6*x3^3*y3 - 3*x1^6*y1^3 + 12*x1^4*y1^3*x2^2 - 5*x1^3*y1^3*x2^3 - 12*x1^2*y1^3*x2^4 + 9*x1*y1^3*x2^5 - y1^3*x2^6 + 9*x1^6*y1^2*y2 - 6*x1^5*y1^2*x2*y2 - 21*x1^4*y1^2*x2^2*y2 + 15*x1^3*y1^2*x2^3*y2 + 6*x1^2*y1^2*x2^4*y2 + 3*x1*y1^2*x2^5*y2 - 6*y1^2*x2^6*y2 - 6*x1^6*y1*y2^2 + 3*x1^5*y1*x2*y2^2 + 6*x1^4*y1*x2^2*y2^2 + 15*x1^3*y1*x2^3*y2^2 - 21*x1^2*y1*x2^4*y2^2 - 6*x1*y1*x2^5*y2^2 + 9*y1*x2^6*y2^2 - x1^6*y2^3 + 9*x1^5*x2*y2^3 - 12*x1^4*x2^2*y2^3 - 5*x1^3*x2^3*y2^3 + 12*x1^2*x2^4*y2^3 - 3*x2^6*y2^3 + 6*x1^4*y1^3*x3^2 - 9*x1^3*y1^3*x2*x3^2 - 9*x1^2*y1^3*x2^2*x3^2 + 21*x1*y1^3*x2^3*x3^2 - 9*y1^3*x2^4*x3^2 - 21*x1^4*y1^2*y2*x3^2 + 39*x1^3*y1^2*x2*y2*x3^2 + 9*x1^2*y1^2*x2^2*y2*x3^2 - 51*x1*y1^2*x2^3*y2*x3^2 + 24*y1^2*x2^4*y2*x3^2 + 24*x1^4*y1*y2^2*x3^2 - 51*x1^3*y1*x2*y2^2*x3^2 + 9*x1^2*y1*x2^2*y2^2*x3^2 + 39*x1*y1*x2^3*y2^2*x3^2 - 21*y1*x2^4*y2^2*x3^2 - 9*x1^4*y2^3*x3^2 + 21*x1^3*x2*y2^3*x3^2 - 9*x1^2*x2^2*y2^3*x3^2 - 9*x1*x2^3*y2^3*x3^2 + 6*x2^4*y2^3*x3^2 + 2*x1^3*y1^3*x3^3 - 6*x1^2*y1^3*x2*x3^3 + 6*x1*y1^3*x2^2*x3^3 - 2*y1^3*x2^3*x3^3 - 6*x1^3*y1^2*y2*x3^3 + 18*x1^2*y1^2*x2*y2*x3^3 - 18*x1*y1^2*x2^2*y2*x3^3 + 6*y1^2*x2^3*y2*x3^3 + 6*x1^3*y1*y2^2*x3^3 - 18*x1^2*y1*x2*y2^2*x3^3 + 18*x1*y1*x2^2*y2^2*x3^3 - 6*y1*x2^3*y2^2*x3^3 - 2*x1^3*y2^3*x3^3 + 6*x1^2*x2*y2^3*x3^3 - 6*x1*x2^2*y2^3*x3^3 + 2*x2^3*y2^3*x3^3 + 3*x1^6*y1^2*y3 - 12*x1^5*y1^2*x2*y3 + 12*x1^4*y1^2*x2^2*y3 + 12*x1^3*y1^2*x2^3*y3 - 33*x1^2*y1^2*x2^4*y3 + 24*x1*y1^2*x2^5*y3 - 6*y1^2*x2^6*y3 + 6*x1^5*y1*x2*y2*y3 - 24*x1^4*y1*x2^2*y2*y3 + 36*x1^3*y1*x2^3*y2*y3 - 24*x1^2*y1*x2^4*y2*y3 + 6*x1*y1*x2^5*y2*y3 - 6*x1^6*y2^2*y3 + 24*x1^5*x2*y2^2*y3 - 33*x1^4*x2^2*y2^2*y3 + 12*x1^3*x2^3*y2^2*y3 + 12*x1^2*x2^4*y2^2*y3 - 12*x1*x2^5*y2^2*y3 + 3*x2^6*y2^2*y3 + 6*x1^5*y1^2*x3*y3 - 18*x1^4*y1^2*x2*x3*y3 + 12*x1^3*y1^2*x2^2*x3*y3 + 12*x1^2*y1^2*x2^3*x3*y3 - 18*x1*y1^2*x2^4*x3*y3 + 6*y1^2*x2^5*x3*y3 - 12*x1^5*y1*y2*x3*y3 + 36*x1^4*y1*x2*y2*x3*y3 - 24*x1^3*y1*x2^2*y2*x3*y3 - 24*x1^2*y1*x2^3*y2*x3*y3 + 36*x1*y1*x2^4*y2*x3*y3 - 12*y1*x2^5*y2*x3*y3 + 6*x1^5*y2^2*x3*y3 - 18*x1^4*x2*y2^2*x3*y3 + 12*x1^3*x2^2*y2^2*x3*y3 + 12*x1^2*x2^3*y2^2*x3*y3 - 18*x1*x2^4*y2^2*x3*y3 + 6*x2^5*y2^2*x3*y3 + 3*x1^6*y1*y3^2 - 9*x1^5*y1*x2*y3^2 + 30*x1^3*y1*x2^3*y3^2 - 45*x1^2*y1*x2^4*y3^2 + 27*x1*y1*x2^5*y3^2 - 6*y1*x2^6*y3^2 - 6*x1^6*y2*y3^2 + 27*x1^5*x2*y2*y3^2 - 45*x1^4*x2^2*y2*y3^2 + 30*x1^3*x2^3*y2*y3^2 - 9*x1*x2^5*y2*y3^2 + 3*x2^6*y2*y3^2 - x1^6*y3^3 + 6*x1^5*x2*y3^3 - 15*x1^4*x2^2*y3^3 + 20*x1^3*x2^3*y3^3 - 15*x1^2*x2^4*y3^3 + 6*x1*x2^5*y3^3 - x2^6*y3^3 + 3*x1^3*y1^5 - 6*x1*y1^5*x2^2 + 3*y1^5*x2^3 - 12*x1^3*y1^4*y2 + 3*x1^2*y1^4*x2*y2 + 15*x1*y1^4*x2^2*y2 - 6*y1^4*x2^3*y2 + 15*x1^3*y1^3*y2^2 - 3*x1^2*y1^3*x2*y2^2 - 9*x1*y1^3*x2^2*y2^2 - 3*y1^3*x2^3*y2^2 - 3*x1^3*y1^2*y2^3 - 9*x1^2*y1^2*x2*y2^3 - 3*x1*y1^2*x2^2*y2^3 + 15*y1^2*x2^3*y2^3 - 6*x1^3*y1*y2^4 + 15*x1^2*y1*x2*y2^4 + 3*x1*y1*x2^2*y2^4 - 12*y1*x2^3*y2^4 + 3*x1^3*y2^5 - 6*x1^2*x2*y2^5 + 3*x2^3*y2^5 - 3*x1*y1^5*x3^2 + 3*y1^5*x2*x3^2 + 15*x1*y1^4*y2*x3^2 - 15*y1^4*x2*y2*x3^2 - 30*x1*y1^3*y2^2*x3^2 + 30*y1^3*x2*y2^2*x3^2 + 30*x1*y1^2*y2^3*x3^2 - 30*y1^2*x2*y2^3*x3^2 - 15*x1*y1*y2^4*x3^2 + 15*y1*x2*y2^4*x3^2 + 3*x1*y2^5*x3^2 - 3*x2*y2^5*x3^2 + 6*x1^2*y1^4*x2*y3 - 12*x1*y1^4*x2^2*y3 + 6*y1^4*x2^3*y3 - 6*x1^3*y1^3*y2*y3 - 6*x1^2*y1^3*x2*y2*y3 + 30*x1*y1^3*x2^2*y2*y3 - 18*y1^3*x2^3*y2*y3 + 18*x1^3*y1^2*y2^2*y3 - 18*x1^2*y1^2*x2*y2^2*y3 - 18*x1*y1^2*x2^2*y2^2*y3 + 18*y1^2*x2^3*y2^2*y3 - 18*x1^3*y1*y2^3*y3 + 30*x1^2*y1*x2*y2^3*y3 - 6*x1*y1*x2^2*y2^3*y3 - 6*y1*x2^3*y2^3*y3 + 6*x1^3*y2^4*y3 - 12*x1^2*x2*y2^4*y3 + 6*x1*x2^2*y2^4*y3 - 3*x1^2*y1^4*x3*y3 + 6*x1*y1^4*x2*x3*y3 - 3*y1^4*x2^2*x3*y3 + 12*x1^2*y1^3*y2*x3*y3 - 24*x1*y1^3*x2*y2*x3*y3 + 12*y1^3*x2^2*y2*x3*y3 - 18*x1^2*y1^2*y2^2*x3*y3 + 36*x1*y1^2*x2*y2^2*x3*y3 - 18*y1^2*x2^2*y2^2*x3*y3 + 12*x1^2*y1*y2^3*x3*y3 - 24*x1*y1*x2*y2^3*x3*y3 + 12*y1*x2^2*y2^3*x3*y3 - 3*x1^2*y2^4*x3*y3 + 6*x1*x2*y2^4*x3*y3 - 3*x2^2*y2^4*x3*y3 - 3*x1^3*y1^3*y3^2 + 9*x1^2*y1^3*x2*y3^2 - 9*x1*y1^3*x2^2*y3^2 + 3*y1^3*x2^3*y3^2 + 9*x1^3*y1^2*y2*y3^2 - 27*x1^2*y1^2*x2*y2*y3^2 + 27*x1*y1^2*x2^2*y2*y3^2 - 9*y1^2*x2^3*y2*y3^2 - 9*x1^3*y1*y2^2*y3^2 + 27*x1^2*y1*x2*y2^2*y3^2 - 27*x1*y1*x2^2*y2^2*y3^2 + 9*y1*x2^3*y2^2*y3^2 + 3*x1^3*y2^3*y3^2 - 9*x1^2*x2*y2^3*y3^2 + 9*x1*x2^2*y2^3*y3^2 - 3*x2^3*y2^3*y3^2 - y1^7 + 5*y1^6*y2 - 9*y1^5*y2^2 + 5*y1^4*y2^3 + 5*y1^3*y2^4 - 9*y1^2*y2^5 + 5*y1*y2^6 - y2^7 - y1^6*y3 + 6*y1^5*y2*y3 - 15*y1^4*y2^2*y3 + 20*y1^3*y2^3*y3 - 15*y1^2*y2^4*y3 + 6*y1*y2^5*y3 - y2^6*y3)/(x1^9 - 3*x1^8*x2 + 8*x1^6*x2^3 - 6*x1^5*x2^4 - 6*x1^4*x2^5 + 8*x1^3*x2^6 - 3*x1*x2^8 + x2^9 + 3*x1^8*x3 - 12*x1^7*x2*x3 + 12*x1^6*x2^2*x3 + 12*x1^5*x2^3*x3 - 30*x1^4*x2^4*x3 + 12*x1^3*x2^5*x3 + 12*x1^2*x2^6*x3 - 12*x1*x2^7*x3 + 3*x2^8*x3 + 3*x1^7*x3^2 - 15*x1^6*x2*x3^2 + 27*x1^5*x2^2*x3^2 - 15*x1^4*x2^3*x3^2 - 15*x1^3*x2^4*x3^2 + 27*x1^2*x2^5*x3^2 - 15*x1*x2^6*x3^2 + 3*x2^7*x3^2 + x1^6*x3^3 - 6*x1^5*x2*x3^3 + 15*x1^4*x2^2*x3^3 - 20*x1^3*x2^3*x3^3 + 15*x1^2*x2^4*x3^3 - 6*x1*x2^5*x3^3 + x2^6*x3^3 - 3*x1^6*y1^2 + 6*x1^5*y1^2*x2 + 3*x1^4*y1^2*x2^2 - 12*x1^3*y1^2*x2^3 + 3*x1^2*y1^2*x2^4 + 6*x1*y1^2*x2^5 - 3*y1^2*x2^6 + 6*x1^6*y1*y2 - 12*x1^5*y1*x2*y2 - 6*x1^4*y1*x2^2*y2 + 24*x1^3*y1*x2^3*y2 - 6*x1^2*y1*x2^4*y2 - 12*x1*y1*x2^5*y2 + 6*y1*x2^6*y2 - 3*x1^6*y2^2 + 6*x1^5*x2*y2^2 + 3*x1^4*x2^2*y2^2 - 12*x1^3*x2^3*y2^2 + 3*x1^2*x2^4*y2^2 + 6*x1*x2^5*y2^2 - 3*x2^6*y2^2 - 6*x1^5*y1^2*x3 + 18*x1^4*y1^2*x2*x3 - 12*x1^3*y1^2*x2^2*x3 - 12*x1^2*y1^2*x2^3*x3 + 18*x1*y1^2*x2^4*x3 - 6*y1^2*x2^5*x3 + 12*x1^5*y1*y2*x3 - 36*x1^4*y1*x2*y2*x3 + 24*x1^3*y1*x2^2*y2*x3 + 24*x1^2*y1*x2^3*y2*x3 - 36*x1*y1*x2^4*y2*x3 + 12*y1*x2^5*y2*x3 - 6*x1^5*y2^2*x3 + 18*x1^4*x2*y2^2*x3 - 12*x1^3*x2^2*y2^2*x3 - 12*x1^2*x2^3*y2^2*x3 + 18*x1*x2^4*y2^2*x3 - 6*x2^5*y2^2*x3 - 3*x1^4*y1^2*x3^2 + 12*x1^3*y1^2*x2*x3^2 - 18*x1^2*y1^2*x2^2*x3^2 + 12*x1*y1^2*x2^3*x3^2 - 3*y1^2*x2^4*x3^2 + 6*x1^4*y1*y2*x3^2 - 24*x1^3*y1*x2*y2*x3^2 + 36*x1^2*y1*x2^2*y2*x3^2 - 24*x1*y1*x2^3*y2*x3^2 + 6*y1*x2^4*y2*x3^2 - 3*x1^4*y2^2*x3^2 + 12*x1^3*x2*y2^2*x3^2 - 18*x1^2*x2^2*y2^2*x3^2 + 12*x1*x2^3*y2^2*x3^2 - 3*x2^4*y2^2*x3^2 + 3*x1^3*y1^4 - 3*x1^2*y1^4*x2 - 3*x1*y1^4*x2^2 + 3*y1^4*x2^3 - 12*x1^3*y1^3*y2 + 12*x1^2*y1^3*x2*y2 + 12*x1*y1^3*x2^2*y2 - 12*y1^3*x2^3*y2 + 18*x1^3*y1^2*y2^2 - 18*x1^2*y1^2*x2*y2^2 - 18*x1*y1^2*x2^2*y2^2 + 18*y1^2*x2^3*y2^2 - 12*x1^3*y1*y2^3 + 12*x1^2*y1*x2*y2^3 + 12*x1*y1*x2^2*y2^3 - 12*y1*x2^3*y2^3 + 3*x1^3*y2^4 - 3*x1^2*x2*y2^4 - 3*x1*x2^2*y2^4 + 3*x2^3*y2^4 + 3*x1^2*y1^4*x3 - 6*x1*y1^4*x2*x3 + 3*y1^4*x2^2*x3 - 12*x1^2*y1^3*y2*x3 + 24*x1*y1^3*x2*y2*x3 - 12*y1^3*x2^2*y2*x3 + 18*x1^2*y1^2*y2^2*x3 - 36*x1*y1^2*x2*y2^2*x3 + 18*y1^2*x2^2*y2^2*x3 - 12*x1^2*y1*y2^3*x3 + 24*x1*y1*x2*y2^3*x3 - 12*y1*x2^2*y2^3*x3 + 3*x1^2*y2^4*x3 - 6*x1*x2*y2^4*x3 + 3*x2^2*y2^4*x3 - y1^6 + 6*y1^5*y2 - 15*y1^4*y2^2 + 20*y1^3*y2^3 - 15*y1^2*y2^4 + 6*y1*y2^5 - y2^6))"}︡{"stdout":"\n"}︡{"done":true}︡ ︠6f5ffa97-6a44-4c5d-a75a-1f2340ca88e2s︠ (Q(Z[0].numerator()*W[0].denominator() - Z[0].denominator()*W[0].numerator())) == 0 ︡9bfdcbef-e52f-4a22-8b35-eb4c3918caaf︡{"stdout":"True\n"}︡{"done":true}︡ ︠d4e30694-d825-4aa3-8f7a-ac4bdb222803s︠ (Q(Z[1].numerator()*W[1].denominator() - Z[1].denominator()*W[1].numerator())) == 0 ︡803ae913-27f3-461a-9c2a-99a5bd345bd4︡{"stdout":"True\n"}︡{"done":true}︡ ︠01fa4949-9daa-4e23-8073-c7789f30814as︠ def ecm(N, B=10^3, trials=10): m = prod([p^int(math.log(B)/math.log(p)) for p in prime_range(B+1)]) R = Integers(N) # Hacer creer a Sage creer que R es un cuerpo: R.is_field = lambda : True for _ in range(trials): while True: a = R.random_element() if gcd(4*a.lift()^3 + 27, N) == 1: break try: m * EllipticCurve([a, 1])([0,1]) except ZeroDivisionError, msg: # msg: "Inversa de no existe" return gcd(Integer(str(msg).split()[2]), N) return 1 ︡30111196-bb76-423b-a0f5-9707f5b82c13︡{"done":true} ︠80e1b436-a1aa-4471-97a0-04e755fb3050s︠ {"done":true} set_random_seed(2) ecm(5959, B=20) ︡6cb4331d-fdc6-4188-8f43-352321817c06︡{"stdout":"{'done': True}\n"}︡{"stdout":"101\n"}︡{"done":true} ︠d57da8d5-64ec-4ee0-a432-3e7792466a22s︠ just_a_number_real = 1203823882390383868658742297994980589419874460389646554165385612803071867135129479658 sys.stdout.write('Testing {}\n'.format(just_a_number)) def faqtrz(number, b): """Written by mleon""" tmp_factor = ecm(number, B = b) if tmp_factor == 1 : sys.stdout.write('PRIME.\n') return sys.stdout.write('COMPOSITE: ') fcts = [] while tmp_factor != 1 : sys.stdout.write('{} '.format(tmp_factor)) number = number // tmp_factor fcts.append(tmp_factor) tmp_factor = ecm(number, B = b) sys.stdout.write("{} ".format(number)) fcts.append(number) sys.stdout.write('end of factorization\n') return fcts from time import time start = time() faqtrz(just_a_number, 10^5) sys.stdout.write("Time elapsed: {}\n".format(time() - start)) ︡7fc98241-1f4e-47d1-a0a5-062a4013f4cf︡{"stdout":"Testing 30\n"}︡{"stdout":"COMPOSITE: 2 5 "}︡{"stdout":"3 "}︡{"stdout":"end of factorization\n[2, 5, 3]\n"}︡{"stdout":"Time elapsed: 28.9239828587\n"}︡{"done":true} ︠51c41916-0e30-41a9-b070-beac2ff222e0r︠ def factorize(n, b = 10^3): primes = [n] ans = [] while primes: u = primes.pop() factor = ecm(u,B = b) if factor == 1: ans.append(u) else: primes.append(u // factor) primes.append(factor) for x in ans: print("{}".format(x)) factorize(30) ︡720928bd-2cca-42f4-8145-d6b926ffc1bf︡ ︠43a35e67-bcf5-46c6-940c-6bc5d998d3c6︠ ︡d6e5b4ff-4e6e-4b61-98f7-b6359f5a86c3︡ ︠11f41f45-ed06-4a63-a30e-b35df6cbdb90︠ ︡7cc32969-bd72-4c61-b195-69e2ec667039︡ ︠9410c3eb-d034-42b4-92e5-d16966fcef23︠ ︡b2e85dce-acce-424f-b029-ed168ed2c042︡ ︠a05b3d2a-ab14-4d8f-9f2d-58db3c6b8f4f︠ ︡7b53298b-d22c-4862-8caf-843105645ac9︡ ︠a1a1f416-8137-4152-b9b3-265c687edbbew︠ a = 224403517704336969924557513090674863160948472041 b = 178246645378577191176051070357934327140032961660 X = 16 * a^4 - 314 * 314 * b^4 print(X) ︡5bbbc4f6-a6fb-4c3c-86b3-5d8c8519a6ce︡ ︠930dcbe6-8248-47ee-9ddb-a1bafa771b42︠