Найдите все факторы заданного числа и их побитовое 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 ), для хранения всех факторов заданного целого числа.