задача на C++, помогите решить , пожалуйста
Вам дан массив a размера n. Пара чисел (i, j) называется дружественными, если ai делится на aj, или aj делится на ai.
Разбейте a на максимальное количество блоков так, чтобы для каждой пары дружественных чисел, оба числа находились в одном и том же блоке. Блок — это подотрезок.
Входные данные
В первой строке находится одно целое число n (1 ≤ n ≤ 3⋅105).
Во второй строке находятся n целых чисел a1, a2, ... , an (1 ≤ ai ≤ 3⋅105).
Выходные данные
Выведите ответ на задачу.
Примеры
входные данные
4 2 3 4 5
выходные данные
2
входные данные
3 2 1 4
выходные данные
1