in reply to Converting a Number into a Radical
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:
Cheers,
Rob
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.)5 * sqrt(2 * 3 * 7) = 5 * sqrt(42)
Cheers,
Rob
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Converting a Number into a Radical
by slinky773 (Sexton) on Dec 18, 2013 at 08:26 UTC | |
Re^2: Converting a Number into a Radical
by hdb (Monsignor) on Dec 20, 2013 at 10:25 UTC | |
Re^2: Converting a Number into a Radical
by Bloodnok (Vicar) on Dec 19, 2013 at 13:49 UTC |
In Section
Seekers of Perl Wisdom