Как получить нет факторов числа в пределах диапазона?
Обычно я делаю простую факторизацию и получаю все простые факторы, а также делаю перестановки и комбинации, чтобы найти все факторы.
Например: 1824 - это число, которое я пытаюсь учесть. Теперь мне не нужны коэффициенты 1824 в числе 300.
Есть ли хитрость??
2 ответа
Одна хитрость, это не поиск чисел за квадратным корнем числа, которое вы ищете для факторов. Например, чтобы найти факторы из 2-300, вам действительно нужно искать только из 2-ceil(sqrt(1824)), то есть 2-43. Как только вы найдете число в диапазоне 2-43, разделите его на 1824, чтобы проверить другие факторы, которые могут быть выше 43.
В качестве решения грубой силы вам не нужно предварительно разлагать число для этого. Вы можете просто проверить все числа в диапазоне.
Пусть диапазон чисел, в которых вы хотите найти факторы, будет [range_start, range_end]. Просто переберите эти числа в цикле и для каждого числа (скажем, х), проверьте, если (number % x == 0
), если да, то х является фактором числа.