foreach $int (1 .. ($no/2)) { if ($no%int == 0) { $div = $no / $int; print "$div\n"; } } #### foreach $int (2, map {$_*2+1} (1 .. ($no/4)) { .... #### print "$_\n" for grep { 0==$no%$_ } (2, map { 2*$_+1 } 1 .. $no/2);