Найти сумму чисел в заданном диапазоне, когда числа изменены как заданные

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

Найдите сумму всех чисел между диапазоном l и r . Здесь каждое число представлено суммой своих различных простых множителей.

Примеры:

Input:  l = 1, r = 6
Output: 17
Explanation:  For 1, sum of prime factors = 0
For 2, Sum of Prime factors = 2
For 3, Sum of Prime factors = 3
For 4, Sum of Prime factors = 2
For 5, Sum of Prime factors = 5
For 6, Sum of Prime factors = 2 + 3 = 5
So, Total sum of all prime factors for the given range = 2 + 3 + 2 + 5 + 5 = 17 

Input:  l = 11, r = 15
Output: 46
Explanation: For 11, sum of prime factors = 11
For 12, Sum of Prime factors = 2 + 3 = 5
For 13, Sum of Prime factors = 13
For 14, Sum of Prime factors = 2 + 7 = 9
For 15, Sum of Prime factors = 3 + 5 = 8
So, Total sum of all prime factors for the given range = 11 + 5 + 13 + 9 + 8 = 46

Подход: Чтобы решить проблему, выполните следующие действия:

  • Создайте функцию, которая находит все простые делители числа и суммирует все простые делители, которые будут представлять это число.
  • Суммируйте все измененные числа в диапазоне [l, r] и верните это как общую сумму.

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

Временная сложность: O(N * sqrt(r) * sqrt(r)), где n – количество элементов в диапазоне, и каждому требуется максимальное время sqrt(r), чтобы найти все факторы и проверить, являются ли они простыми.
Вспомогательное пространство: O(1)