in reply to Re: Converting a Number into a Radical
in thread Converting a Number into a Radical
I could not resist to write it out:
use strict; use warnings; use Math::Factor::XS 'prime_factors'; my $n = shift; ( $n and $n > 0 and $n == int $n ) or die "Need positive integer as in +put!\n"; my %p; $p{$_}++ for prime_factors( $n ); my $radical = 1; $radical *= $_ for grep { $p{$_}%2 } keys %p; print "sqrt( $n ) = ", sqrt( $n/$radical ), " * sqrt( $radical )\n";
What I was missing is a product function, like sum from List::Util. There is one in the replacement List::Util that comes with Scalar::Util but that means overwriting the standard module which makes me feel uncomfortable.
|
|---|