This is going to be slower that just taking the sqrt of the value. Just to let you know ...use Math::Big::Factors; my $val = 2000; my @x = Math::Big::Factors::factors_wheel( $val ); print "@x\n"; my %factors; $factors{$_}++ for @x; use Data::Dumper; print Dumper \%factors; my $sqrt = 1; while (my ($k,$v) = each %factors) { while ($v > 1) { $sqrt *= $k; $v -= 2; } if ($v) { $sqrt *= sqrt( $k ); } } print "$sqrt => ", sqrt( $val ), $/;
Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.
In reply to Re^3: OT: Finding Factor Closest To Square Root
by dragonchild
in thread OT: Finding Factor Closest To Square Root
by QM
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |