sub part { my ($n, $m) = @_; my $r = $n%$m; # <== my @parts = (($n-$r)/$m) x $m; # <== my $i=0; $parts[$i++]++ while $r--; return @parts; } #### sub part { my ($n, $m) = @_; my $r = $n%$m; my $q = ($n-$r)/$m; # avoid int($n/$m) to prevent fp rounding errors return ($q+1) x $r, ($q) x ($m-$r); }