паскаль сокращение перебора
Здравствуйте
дано натуральное число, нужно найти все его делители (тоже натуральные числа)
до минимума сократив количество перебираемых чисел.
пример: зная что число делится только на 2 и 3, например число 36,
как сократить перебор, не используя оператор for
делителями числа 36 является следующая последовательность цифр 1,2,3,4,6 или посложнее -
делителями числа 108 являются 1,2,3,4,6,9 вот кусочек программы
readln (x);
if ( x mod 2=0) and (x mod 3=0) and (x mod 5<>0) and (x mod 7<>0) then
begin
while trunc ( sqrt (x) )>=y do begin
x -это натуральное число для которого нужно найти делители (тоже натуральное числа)
y - это делители числа x
интересует, как можно вывести эти цифры 1,2,3,4,6,9 не прибегая к
оператору фор так как для больших значений икс время перебора с фор
значительно увеличится
желательно не решать за меня, а просто указать правильное направление
куда думать (если конечно есть такое)