While designing a problem involving lattice points, I sought a tool to simplify display of distances, e.g., sqrt(360) = 6 sqrt(10). After quick searches found nothing, I wrote the following (the attached file demonstrates this code in a WeBWorK problem).

#### simplify square root of integer, e.g., sqrt(300) = 10 sqrt(3)

sub sqrtReduce {

my @Sqrt = (1,@_[0]);

foreach my $p (2,3,5,7,11,13,17,19) {

while ( $Sqrt[1] % ($p*$p) == 0 ) {

$Sqrt[0] *= $p ;

$Sqrt[1] /= ($p*$p) ;

}

}

return @Sqrt

}

#### LaTeX formatting for output of sqrtReduce

sub sqrtShow {

my @Root = sqrtReduce(@_[0]) ;

if ($Root[1] == 1) {

return $Root[0] ;

} elsif ($Root[0] == 1) {

return "\sqrt{$Root[1]}" ;

} else {

return "$Root[0] \, \sqrt{$Root[1]}" ;

}

}

a) I will welcome suggestions to improve this code.

b) Does WeBWorK 2.#.# already have a library file with a similar tool?

c) If not(b), could WW 3.# include a new file to contain tools not already in PGauxililaryFunctions.pl? I would renew my proposal of an extended gcd discussed in http://webwork.maa.org/moodle/mod/forum/discuss.php?d=2286

## WeBWorK Problems

### tool(s) to simplify sqrt(integer)

This forum has a limit to the number of forum postings you can make in a given time period - this is currently set at 10 posting(s) in 1 day