Parallel calculations: Difference between revisions

Content added Content deleted
m (add ooRexx)
(Add Perl)
Line 1,369: Line 1,369:
print str((t2-t1)/freq,3) " secs " numbers(n) " " f 'number with highest prime factor
print str((t2-t1)/freq,3) " secs " numbers(n) " " f 'number with highest prime factor
</lang>
</lang>

=={{header|Perl}}==
{{libheader|ntheory}}
<lang perl>use ntheory qw/factor vecmax/;
use threads;
use threads::shared;
my @results :shared;

my $tnum = 0;
$_->join() for
map { threads->create('tfactor', $tnum++, $_) }
(qw/576460752303423487 576460752303423487 576460752303423487 112272537195293
115284584522153 115280098190773 115797840077099 112582718962171 299866111963290359/);

my $lmf = vecmax( map { $_->[1] } @results );
print "Largest minimal factor of $lmf found in:\n";
print " $_->[0] = [@$_[1..$#$_]]\n" for grep { $_->[1] == $lmf } @results;

sub tfactor {
my($tnum, $n) = @_;
push @results, shared_clone([$n, factor($n)]);
}</lang>
{{out}}
<pre>
Largest minimal factor of 544651 found in:
115797840077099 = [544651 212609249]
299866111963290359 = [544651 550565613509]
</pre>


=={{header|Perl 6}}==
=={{header|Perl 6}}==