Найдите все факторы заданного числа и их побитовое XOR

Опубликовано: 27 Февраля, 2023

Для заданного целого числа N задача состоит в том, чтобы найти все множители (исключая себя) числа N и их исключающее ИЛИ.

Примеры :

Input: N = 8 
Output:
Divisors are: 1 2 4 
Xor: 7
Explanation:  1, 2 and 4 are all factors of 8 and 1^2^4 = 7.

Input: N = 25
Output:
Divisors are: 1 5 
Xor: 4

Подход: следуйте приведенной ниже идее, чтобы решить проблему:

Store all the factors of the given number N and calculate the xor of all the factors

Следуйте инструкциям, чтобы решить эту проблему:

  • Инициализировать переменную Xor = 0
  • Создайте вектор factor1 и factor2 для хранения коэффициентов от 1 до sqrt(N) и от sqrt(N) до N.
  • Пройдите массив от 1 до sqrt (N)
    • Если N % i = 0 , добавьте i в factor1 и Xor = Xor^i
    • И проверьте, если N/i != i добавьте N/i в factor2 и Xor = Xor^(n/i)
  • После выполнения цикла вставить элементы factor2 в factor1 в обратном порядке
  • Вытолкните элемент N из вектора factor1 .
  • Выведите вектор factor1 и верните Xor^N, так как мы уже вычислили N в Xor.

Ниже приведена реализация описанного выше подхода.

Временная сложность : O(N 1/2 ), где N — заданное целое число.
Вспомогательное пространство : O(N 1/2 ), для хранения всех факторов заданного целого числа.