Be as evil as possible Introduction

This is a follow-up of this challenge where you're taking the role of that person's evil twin. Being evil you don't want to maximize your share, but rather be as unfair as possible and you're not going to make it too obvious, that's why you came up with the following scheme:

You're going to tell the others that you want to be as fair as possible like your sibling and thus you're going to split the integer into pieces of equal length. So for each integer you will come up with the right amount of people such that the difference between the largest and the smallest piece is maximal.

For example if you're given the integer 6567 you could leave it as is, split it into two pieces 65,67 or four 6,5,6,7. This gives you the following maximal differences:

6567    -&gt; max() = 0
65,67   -&gt; max(|65-67|) = 2
6,5,6,7 -&gt; max(|6-5|,|6-5|,|6-6|,|6-7|,|5-6|,|5-7|,|6-7|) = 2


Since you only want to be evil you don't prefer 67 over 7 and thus you will output either 2 or 4.



Another (less special case); given the integer 121131 you could split it like this:

121131      -&gt; max() = 0
121,131     -&gt; max(|121-131|) = 10
12,11,31    -&gt; max(|12-11|,|12-31|,|11-31|) = 20
1,2,1,1,3,1 -&gt; max(…) = 2


This time there's only one solution - namely 3 - since with three people the difference is maximal.

Challenge

Given an integer determine any possible way of being maximally evil and report the number of people needed to achieve this.

Rules


Input will always be ≥ 1
Input can be either an integer, list of digits or string
You don't have to handle invalid inputs


Testcases

You only need to report the resulting number of people needed, the possible partitions are only for illustration:

In -&gt; splits (difference) -&gt; Out
1 -&gt; [1] (0) -&gt; 1
10 -&gt; [1,0] (1) -&gt; 2
11 -&gt; [11] or [1,1] (0) -&gt; 1 or 2
12 -&gt; [1,2] (1) -&gt; 2
42 -&gt; [4,2] (2) -&gt; 2
101 -&gt; [1,0,1] (1) -&gt; 3
2222 -&gt; [2222] or [22,22] or [2,2,2,2] (0) -&gt; 1 or 2 or 4
6567 -&gt; [65,67] or [6,5,6,7] (2) -&gt; 2 or 4
123000 -&gt; [123,000] (123) -&gt; 2
123001 -&gt; [123,001] (122) -&gt; 2
121131 -&gt; [12,11,31] (20) -&gt; 3
294884 -&gt; [294,884] (590) -&gt; 2
192884729 -&gt; [192,884,729] (692) -&gt; 3
123456189012 -&gt; [123456,189012] (65556) -&gt; 2
123457117346 -&gt; [1234,5711,7346] (6112) -&gt; 3
Jelly, &nbsp;16&nbsp; 14 bytes

Ṁ_Ṃ
sLÆD$ḌÇÞṪL


A monadic link taking a list of integers (the digits) and returning an integer.

Try it online! or see a test-suite

How?

Ṁ_Ṃ - Link 1, maximal difference: list of numbers
Ṁ   - maximum
  Ṃ - minimum
 _  - subtract

sLÆD$ḌÇÞṪL - Main link: list of numbers, theDigits  e.g. [1,2,3,0,0,1]
    $      - last two links as a monad:
 L         -   length                                    6
  ÆD       -   divisors                                  [1,2,3,6]
s          - split into chunks (vectorises)              [[[1],[2],[3],[0],[0],[1]],[[1,2],[3,0],[0,1]],[[1,2,3],[0,0,1]],[[1,2,3,0,0,1]]]
     Ḍ     - from decimal (vectorises)                   [[1,2,3,0,0,1],[12,30,1],[123,1],[123001]]
       Þ   - sort by:
      Ç    -   call last link (1) as a monad              3             29        122     0
           -                                         ... [[123001],[1,2,3,0,0,1],[12,30,1],[123,1]]
        Ṫ  - tail                                        [123,1]
         L - length                                      2