Don't ask to ask, just ask  
PerlMonks 
Re: Converting a Number into a Radicalby syphilis (Chancellor) 
on Dec 18, 2013 at 05:50 UTC ( #1067593=note: print w/replies, xml )  Need Help?? 
I gather we're concerned only with square roots of integers and that, for example, if the answer is sqrt(18), you want to see it presented as 3 x sqrt(2) instead of simply sqrt(18).
To achieve this you'll first want to factorise the integer  you could use something like Math::Factor::XS or Math::Prime::Util. To stick with the above example, 18 factorises to the primes 2,3,3  multiply those primes together and you end up with 18. Notice that the "3" occurs twice  hence you can write the solution as 3 * sqrt(2). For sqrt(1050)  the prime factors are 2,3,5,5,7, with the "5" occurring twice, and the solution is therefore: That's essentially how it's done  I don't know if there's a module that does it all for you, or whether you'll have to program a good portion of it yourself. (Perhaps Math::NumSeq might also have something to offer.) Cheers, Rob
In Section
Seekers of Perl Wisdom

