Задачи в паскаль: Цикл с предусловием а) Найти наименьшее общее кратное двух заданных натуральных чисел. б) Дано натуральное число. Найти его наименьший делитель, отличный от 1. Помогите , решить!!!

Задачи в паскаль: Цикл с предусловием а) Найти наименьшее общее кратное двух заданных натуральных чисел. б) Дано натуральное число. Найти его наименьший делитель, отличный от 1. Помогите , решить!!!
Гость
Ответ(ы) на вопрос:
Гость
a) For i := 2 to min ( a, b ) do       if ( a mod i = 0 ) and ( b mod i = 0 ) then         begin           write('НОД ( ', a, ' ', b, ' ) = ', i );           break;         end; б) For i := 2 to n do       if ( n mod i = 0 ) then         begin           write('НД ( ', n, ' ) = ', i );           break;         end; Прошу прощения, но мне уже нужно идти спать... а кто-нибудь другой вряд-ли поможет :(  Если что, можете написать мне личное письмо, я на него постараюсь завтра ответить. С уважением.
Гость
1. Для нахождения НОД используем алгоритм Евклида. var   a, b, i: integer; begin   Write('Введите два натуральных числа '); Readln(a, b);   while b <> 0 do   begin     a := a mod b;     i := b; b := a; a := i   end;   Writeln('НОД этих чисел равен ', a) end. Тестовое решение: Введите два натуральных числа 3264 1296 НОД этих чисел равен 48 2. Тут все намного проще, алгоритм очевиден. var   a, i: integer; begin   Write('Введите натуральное число '); Readln(a);   i := 2;   while (a mod i) <> 0 do i := i + 1;   Writeln('Минимальный делитель равен ', i) end. Тестовое решение: Введите натуральное число 187 Минимальный делитель равен 11
Не нашли ответ?
Ответить на вопрос
Похожие вопросы