Da fattorizzare:: n = 10000000000000000102999499 Scriviamo curve ellittiche a caso E_a: Y^2 = X^3 + a*X + 1 modulo n Per esempio: Y^2 = X^3 + 8644390377546667257039683*X + 1 modulo 10000000000000000102999499 ecc. Prendiamo P = [0,1] e calcoliamo M!P per un certo M > 0. Le curve ellittiche E_a: Y^2 = X^3 + a*X + 1 modulo p = 1000003 a #E_a(Zp) 400511, 1000252 = 2^2 * 11 * 127 * 179 446396, 998478 = 2 * 3^2 * 13 * 17 * 251 757527, 1001142 = 2 * 3^2 * 55619 950605, 998466 = 2 * 3 * 7 * 23773 738004, 1001774 = 2 * 500887 360914, 1000998 = 2 * 3^4 * 37 * 167 404182, 999830 = 2 * 5 * 13 * 7691 669252, 999036 = 2^2 * 3^2 * 27751 159856, 1000804 = 2^2 * 7 * 31 * 1153 792355, 1001014 = 2 * 7 * 127 * 563 178745, 999514 = 2 * 19 * 29 * 907 58690, 999560 = 2^3 * 5 * 24989 473302, 999484 = 2^2 * 249871 250305, 1000818 = 2 * 3^2 * 7 * 13^2 * 47 293143, 999759 = 3 * 333253 426813, 999072 = 2^5 * 3^2 * 3469 846320, 998108 = 2^2 * 19 * 23 * 571 679742, 998138 = 2 * 17 * 31 * 947 737738, 1000664 = 2^3 * 7 * 107 * 167 637089, 1001703 = 3 * 31 * 10771 5482, 998587 = 101 * 9887 547163, 999481 = 7 * 17 * 37 * 227 602283, 1000195 = 5 * 7 * 17 * 41^2 715996, 1000020 = 2^2 * 3 * 5 * 7 * 2381 430777, 1001330 = 2 * 5 * 11 * 9103 446509, 998350 = 2 * 5^2 * 41 * 487 7824, 1000998 = 2 * 3^4 * 37 * 167 411820, 1000207 = 13 * 47 * 1637 933393, 999832 = 2^3 * 124979 793210, 998118 = 2 * 3^2 * 11 * 71^2 603947, 1001260 = 2^2 * 5 * 13 * 3851 23959, 1001738 = 2 * 37 * 13537 72414, 1001458 = 2 * 500729 37992, 998200 = 2^3 * 5^2 * 7 * 23 * 31 <===== "35-tonda" 199740, 1000320 = 2^7 * 3 * 5 * 521 1245, 998533 = 599 * 1667 431719, 1001570 = 2 * 5 * 47 * 2131 491645, 1000296 = 2^3 * 3^3 * 11 * 421 777789, 999839 = 283 * 3533 470326, 1001127 = 3 * 307 * 1087 ** , 1000002 = 2 * 3 * 166667 Y^2 = X^3 + 37992*X + 1 modulo 10000000000000000102999499 P = [0,1] for(k=1,35, P=k*P; print(k,", ",P)) 1, [0, 1] 2, [360848016, 9999999999993145434087562] 3, [7829714526825183914839830, 6745158634502223523583100] 4, [169715744758878173904879, 9850732993061658434111468] 5, [1451698759608181038345013, 2631202290186117105419137] 6, [755346847475472026583725, 4016539818968283430276826] 7, [4769476603651746427245643, 1368375510054014320887789] 8, [7730796687366377665241354, 8102350413722572477326316] 9, [3454663034523784958564294, 9373693158657518226687090] 10, [3553869925798725033582205, 4673121831953711970784431] 11, [32004311335628143387553, 6572681021934085394237953] 12, [2573351991390389531870120, 8567490636494004999969147] 13, [6242484872277286371174144, 5292323231374436274219591] 14, [1244846255355275224928929, 9288917627975065704109367] 15, [7338058160759505411666618, 2602020818704625042386085] 16, [8182143631916781490259028, 9960892768644865101079827] 17, [1894507027568336780153716, 9390777263788851922711383] 18, [3663330248837872225077458, 5630391189198171240595051] 19, [7470553347067819237599, 3703497171451914223570398] 20, [9004727640004763232800315, 2671777545369693762949699] 21, [3793543816015212594347824, 1606644572908146545185974] 22, [4860209534547335034496709, 8339723108927533125401926] 23, [3533270993020414201495810, 6240144477431697778137981] 24, [2881567099261018327564830, 5400811881124710409234383] 25, [8378203677961581386764014, 2189202295795650999316395] 26, [8492426286858215843961748, 3065860762973349647748381] 27, [3232272377639700737447146, 6817961284319673920557197] 28, [1385438055416206121302467, 6726319705236352743857040] 29, [1484697406376005739055781, 3917504683216905467331028] 30, [2366344867430841007216502, 203238978925802150092285] *** impossible inverse modulo: mod(1000003, 10000000000000000102999499) ? 10000000000000000102999499 = 1000003 * 9999970000089999833