Вам подарили N кучек монет. Вы решили разделить каждую из этих куч B 1 , B 2 , ..., B N на отдельные группы людей. Количество людей, получающих монеты, должно быть простым числом, а сумма денег, предоставляемая каждому человеку, должна быть разной в каждой стопке.
Ввод: N, B 1 , B 2 , ..., B N (количество монет в каждой отдельной стопке).
Вывод: NP 1 , NP 2 , ..., NP N, где NP - количество людей (простое число), получающих монеты. Если это невозможно , то выход какой - то недостижимый результат (например 0
, -1
, None
, []
или "impossible"
) или вызвать ошибку.
Пример:
3
7 8 9
Вывод: 7 2 3
Поскольку 7 - единственное простое число, которое может делить 7 равномерно, то же самое для 8 и 2 и 9 и 3. Также обратите внимание, что (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 ).
0
, пустой список, строку типа «невозможно» или вызвать ошибку) для невозможных случаев? (На самом деле я бы рекомендовал только допустимый ввод или разрешать неопределенное поведение в таких случаях, но это зависит от вас.)
[7,8,8]
что было бы невозможно (с использованием 2
обоих 8
результатов в двух 4
с.) Кроме того, если на входе было сказать [7,30,30]
тогда [7,2,2]
будет недействительным , но [7,2,3]
и [7,3,2]
среди других будет работать.
N
является избыточным входом, можем ли мы отказаться от него?