Не понял, что значит “сделать за константу”?
Говоря, что алгоритм работает за
(константу) понимают примерно следующее: вне зависимости от входных данных, алгоритм не сделает операций (или машинных тактов, или чего-нибудь ещё в этом духе) больше, чем некоторая константа
. При этом операции сложения, умножения, деления (целочисленного), вычитания и взятия остатка от деления считаются элементарными.
Вот пример задачи: дано число
, сколько в наборе
чётных чисел?
И два решения:
1) Завести счётчик
перебрать циклом все числа от 1 до
и проверить их чётность, в случае, если число чётное увеличить
на единицу. Этот алгоритм требует
действий (
взятий остатка от деления и
прибавлений в счётчик) то есть, как вы говорите: "пропорционально
".
2) Целочисленно поделить
на 2. Этот алгоритм требует одно действие, то есть "пропорционально 1". Или, как говорят ещё "за константу".
Я сформулирую задачу которую вам надо решать: вот есть у вас целые числа
, и вам надо найти (или сказать, что такового не существует) такое число
, при умножении на которое числа
получится число
.
Как решить эту задачу без цикла (за константу)?
но эта задача скорее алгоритмическая, а не математическая.
Это довольно странная дифференциация, легче считать любую задачу, сформулированную формально в математических терминах - математической.
(К слову, вы владеете каким-нибудь языком программирования? Так объяснения будут проще.)