Проверить, имеет ли данное число 7 делителей

Опубликовано: 19 Сентября, 2022

По заданному числу N задача состоит в том, чтобы проверить, имеет ли N 7 делителей или нет.

Примеры:

Input: 64
Output:
Explanation: 1, 2, 4, 8, 16, 32, 64 -> 7 divisors so output is 1

Input: 100
Output: 0
Explanation: 1, 2, 4, 5, 10, 20, 25, 50, 100 -> 8 divisors so output is 0

Input: 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) = 7

7 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)

РЕКОМЕНДУЕМЫЕ СТАТЬИ