$"x=$%="@ARGV";$~=$;='( +)';while($%>>$:++){if($"=~/$~$/^$"=~/$;$/){$
|=$?=$:>2||die"prime\n";eval"print length(\$$?)".($:>++$?&&"/length(\$
$?).'*'")while$:>$?;die$/}$;=$~;$~=~s~.*~^($&\\1+)~;$~=~s;\d+;1+$&;eg}
####
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 10000
2*2*2*2*5*5*5*5
real 0m4.001s
user 0m3.977s
sys 0m0.015s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 32767
7*31*151
real 0m6.891s
user 0m6.832s
sys 0m0.031s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 32768
2*2*2*2*2*2*2*2*2*2*2*2*2*2*2
real 2m50.119s
user 2m49.588s
sys 0m0.015s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 32769
3*3*11*331
real 0m13.282s
user 0m13.213s
sys 0m0.015s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 65535
3*5*17*257
real 1m11.228s
user 1m8.422s
sys 0m0.061s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 65536
2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2
real 22m20.875s
user 20m55.277s
sys 0m0.920s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 65537
prime
real 0m0.903s
user 0m0.842s
sys 0m0.031s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 65538
2*3*3*11*331
real 1m40.633s
user 1m40.183s
sys 0m0.077s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 100000
2*2*2*2*2*5*5*5*5*5
real 20m59.463s
user 20m53.998s
sys 0m0.202s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 100003
prime
real 0m2.090s
user 0m2.043s
sys 0m0.046s
Kevin@muzyx /cygdrive/c/users/kevin
$ time perl lol.pl 1000003
prime
real 3m23.670s
user 3m22.411s
sys 0m0.062s
####
for$b(-25..25){for$a(-50..29){$x=$a/21;$y=$b/15;print$b?chr:chr^chr
ord(substr'<6C}'.1x29 .'[FDEq2?@E96Cqa6C=q924',$a)-49;$_=30;($y,$x)
=(2*$x*$y+$b/15,$x*$x-$y*$y+$a/21)while$x*$x+$y*$y<9&$_++<95}$_=10}