#! perl -slw use strict; our $N //= 2; our $M //= 1e6; my $size = $M + 1; my $step0 = int ($size / $N); my $big_ranges = $size % $N; my $start = 0; my @ranges; for (1..$N) { my $step = $step0 + ($_ <= $big_ranges ? 1 : 0); push @ranges, [$start, $start + $step - 1]; $start += $step; } printf "%2d : from %7d to %7d (%7d)\n", $_, @{ $ranges[ $_ ] }, $ranges[ $_ ][ 1 ] - $ranges[ $_ ][ 0 ] + 1 for 0 .. $#ranges;