Одним из способов представления натурального числа является умножение показателей простых чисел. Например, 6 может быть представлено как 2 ^ 1 * 3 ^ 1, а 50 может быть представлено как 2 ^ 1 * 5 ^ 2 (где ^ означает экспоненту). Количество простых чисел в этом представлении может помочь определить, короче ли этот метод представления по сравнению с другими методами. Но поскольку я не хочу рассчитывать их вручную, мне нужна программа, которая сделает это за меня. Однако, поскольку мне придется запоминать программу, пока я не вернусь домой, она должна быть максимально короткой.
Твое задание:
Напишите программу или функцию, чтобы определить, сколько различных простых чисел существует в этом представлении числа.
Входные данные:
Целое число n такое, что 1 <n <10 ^ 12, взятое любым нормальным методом.
Выход:
Количество различных простых чисел, необходимых для представления входных данных, как указано во введении.
Тестовые случаи:
24 -> 2 (2^3*3^1)
126 -> 3 (2^1*3^2*7^1)
1538493 -> 4 (3^1*11^1*23^1*2027^1)
123456 -> 3 (2^6*3^1*643^1)
Это OEIS A001221 .
Подсчет очков:
Это код-гольф , выигрывает самая низкая оценка в байтах!