(phixonline)-->
with javascript_semantics
requires("1.0.0")
include mpfr.e
atom t0 = time()
mpz z = mpz_init()
for i=1 to 25 do
integer pi = get_prime(i)
mpz_ui_pow_ui(z,2,pi)
mpz_sub_ui(z,z,1)
string zs = mpz_get_str(z),
fs = mpz_factorstring(mpz_pollard_rho(z))
if fs!=zs then zs &= " = "&fs end if
printf(1,"2^%d-1 = %s\n",{pi,zs})
end for
for s in {"600851475143","100000000000000000037"} do
mpz_set_str(z,s)
printf(1,"%s = %s\n",{s,mpz_factorstring(mpz_pollard_rho(z))})
end for
?elapsed(time()-t0)