6 { "3", "5", "17", "257", "641", "65537", "274177", "2424833", "6700417", "45592577",
7 "6487031809", "67280421310721", "1238926361552897", "59649589127497217",
8 "5704689200685129054721", "4659775785220018543264560743076778192897",
9 "7455602825647884208337395736200454918783366342657",
10 "93461639715357977769163558199606896584051237541638188580280321",
12 "741640062627530801524787141901937474059940781097519023905821316144415759504705008092818711693940737",
14 "130439874405488189727484768796509903946608530841611892186895295776832416251471863574140227977573104895898783928842923844831149032913798729088601617946094119449010595906710130531906171018354491609619193912488538116080712299672322806217820753127014424577"
20 printmp(mpint *b, char *tag)
25 print("%s (%d) ", tag, b->top);
26 p = mptoa(b, 10, nil, 0);
27 write(1, p, strlen(p));
48 main(int argc, char **argv)
50 mpint *p, *k, *d, *b, *e, *x, *r;
54 fmtinstall('B', mpfmt);
55 mpsetminbits(2*Dbits);
72 // k = 2^29440 - 2^27392
74 // p = 2^29440 - 2^27392 + 1
77 // if(!probably_prime(p, 18)){
78 // print("not a prime\n");
81 // print("probably prime\n");
89 print("timing %d\n", timing());
91 for(i = 0; i < nelem(sfactors); i++){
92 d = strtomp(sfactors[i], nil, 10, nil);
100 print("timing %d\n", timing());