Предмет: Информатика,
автор: evgtar6
Задачи в паскаль: Цикл с предусловием
а) Найти наименьшее общее кратное двух заданных натуральных чисел.
б) Дано натуральное число. Найти его наименьший делитель, отличный от 1.
Помогите , решить!!!
Ответы
Автор ответа:
0
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;
Прошу прощения, но мне уже нужно идти спать... а кто-нибудь другой вряд-ли поможет :(
Если что, можете написать мне личное письмо, я на него постараюсь завтра ответить.
С уважением.
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;
Прошу прощения, но мне уже нужно идти спать... а кто-нибудь другой вряд-ли поможет :(
Если что, можете написать мне личное письмо, я на него постараюсь завтра ответить.
С уважением.
Автор ответа:
0
"мне уже нужно идти спать... а кто-нибудь другой вряд-ли поможет :( " - какая вера в собственную исключительность! )))))
Автор ответа:
0
А главное - вместо цикла с предусловием использован цикл со счетчиком. Не говоря уже о том, что в большинстве реализаций Паскаля функция min() отсутствует.
Автор ответа:
0
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
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
Похожие вопросы
Предмет: Математика,
автор: kamirdinovilkhan
Предмет: Литература,
автор: ayasovich099
Предмет: Литература,
автор: kitikat91
Предмет: Математика,
автор: vadim191
Предмет: Биология,
автор: Angeluna2002