Проверить, имеет ли данное число 7 делителей
По заданному числу N задача состоит в том, чтобы проверить, имеет ли N 7 делителей или нет.
Примеры:
Input: 64
Output: 1
Explanation: 1, 2, 4, 8, 16, 32, 64 -> 7 divisors so output is 1Input: 100
Output: 0
Explanation: 1, 2, 4, 5, 10, 20, 25, 50, 100 -> 8 divisors so output is 0Input: 729
Output: 1
Explanation: 1, 2, 4, 8, 16, 32, 64 -> 7 divisors so output is 1
Подход: Задача может быть решена на основе следующего математического наблюдения:
The prime factorization of a number is:
N = p1e1 * p2e2 * . . . * pnen
So number of divisors = ( e1 + 1 ) * (e2 + 1) *. . . * (en + 1).In this case, number of divisors = 7 .
So, ( e1 + 1 ) * (e2 + 1) *. . . * (en + 1) = 77 is multiplication of at most 2 natural numbers.
So, it can be only written as ( e1 + 1 ) * (e2 + 1) = 1 * 7
So, e1 = 0 & e2 = 6 from above equation.
Итак, ясно, что для 7 делителей возможен только один случай, а именно (простое число) 6 . Следуйте инструкциям, чтобы решить проблему:
- Проверьте, является ли N (1/6) простым числом или нет.
- Если это простое число, то выведите «Да».
- В противном случае вывод будет «Нет».
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(logN)
Вспомогательное пространство: O(1)