http://qs321.pair.com?node_id=371576

chiburashka has asked for the wisdom of the Perl Monks concerning the following question:

is there a fast way to tell all the numbers that a spesific number divides on without leftovers (like for the spesific number "20" it divedes on 1,2,4,5,10,20 and stays as an integer) ? How to find those "1,2,4,5,10,20" in the fastest way ?

that's my code :

#!/usr/bin/perl use Math::BigInt; print "Enter the big number : "; $x = readline(*STDIN); print "Enter the little number : "; $y = readline(*STDIN); $z = $x - $y; $i = $z; @all = ''; $j = 0; system cls; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime(time); while ($i ne 0) { $t = $z / $i; $k = Math::BigInt->new($t); $k = $k->is_int(); if ($k eq "1") {$j++; $all[$j] = "$t\n";} $i--; print "$i\n"; } ($sec1,$min1,$hour1,$mday,$mon,$year,$wday,$yday) = gmtime(time); $data="Dis.txt"; open(DAT, $data) || die("Could not open file!"); @al=<DAT>; @al = @all; open(DAT,">$data") || die("Cannot Open File"); print DAT @al; close(DAT); print "@all It took ", $min1 - $min, " minuts!\n"; $w = readline(*STDIN);

now how to make it find those numbers FASTER ?

20040705 Edit by castaway: Changed title from 'Didision'