Выходные данные
Для каждого набора входных данный, пусть \(d_1, d_2, \dots, d_k\) – это все делители \(m\), отсортированные в порядке возрастания. А также, пусть \(a_1, a_2, \dots, a_k\) — это массив ответов, где \(a_i\) равно наименьшему номеру строки, в которой встречается \(d_i\), либо \(0\), если такой строки в таблице нет.
Так как массив \(a\) может быть длинным, выведите сначала число \(s\) — количество делителей \(m\), которые встречаются в таблице умножения \(n \times n\). Далее выведите одно число \(X = a_1 \oplus a_2 \oplus \dots \oplus a_k\), где \(\oplus\) обозначает операцию побитового исключающего ИЛИ.
Примечание
В первом наборе входных данных, \(m = 72 \cdot 1 = 72\) и имеет \(12\) делителей \([1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72]\). Таблица умножения \(3 \times 3\) выглядит следующим образом:
Для каждого делителя \(m\), что присутствует в таблице, выделена позиция с наименьшим номером строки. Соответственно, массив ответов \(a\) равен \([1, 1, 1, 2, 2, 0, 3, 0, 0, 0, 0, 0]\). В нем только \(6\) ненулевых значений, а исключающее ИЛИ \(a\) равен \(2\).
Во втором наборе, \(m = 10 \cdot 15 = 150\) и имеет \(12\) делителей \([1, 2, 3, 5, 6, 10, 15, 25, 30, 50, 75, 150]\). Все делители кроме \(75\) и \(150\) присутствуют в таблице \(10 \times 10\). Массив \(a\) \(=\) \([1, 1, 1, 1, 1, 1, 3, 5, 3, 5, 0, 0]\). В нем \(10\) ненулевых значений и исключающее ИЛИ \(a\) равно \(0\).
В третьем наборе, \(m = 1 \cdot 210 = 210\) и имеет \(16\) делителей \([1, 2, 3, 5, 6, 7, 10, 14, 15, 21, 30, 35, 42, 70, 105, 210]\). Таблица умножения \(6 \times 6\) с выделенными делителями изображена ниже:
| 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 1 | 2 | 3 | 4 | 5 | 6 |
| 2 | 2 | 4 | 6 | 8 | 10 | 12 |
| 3 | 3 | 6 | 9 | 12 | 15 | 18 |
| 4 | 4 | 8 | 12 | 16 | 20 | 24 |
| 5 | 5 | 10 | 15 | 20 | 25 | 30 |
| 6 | 6 | 12 | 18 | 24 | 30 | 36 |
Массив \(a\) \(=\) \([1, 1, 1, 1, 1, 0, 2, 0, 3, 0, 5, 0, 0, 0, 0, 0]\). В нем \(8\) ненулевых значений и исключающее ИЛИ \(a\) равно \(5\).