Даны целые положительные числа A и B найдите их наименьшее общее кратное НОК используя алгоритм Евклида: НОК(A,B)=НОК(B,A mod B), если B не равен
5-9 класс
|
0; NOK(A;0)=A
var
a, b, c, a1, b1:integer;
begin
Writeln('Введите A и B:');
Readln(a, b);
a1 := a;
b1 := b;
while b1 <> 0 do
begin
c := a1 mod b1;
a1 := b1;
b1 := c;
end;
if b <> 0 then
Writeln('НОК(', a,',', b,') = ', a div a1 * b)
else
Writeln('НОК(', a,',', b,') = ', a);
end.
сори в начале не понял, что нужен евклид, я исправился:
uses crt;
function NOD(m,n:integer):integer;
begin
If m<>0 then NOD:=NOD(n mod m,m) else NOD:=n;
end;
function NOK(m,n:integer):integer;
begin
NOK:=(m div NOD (m,n))*n;
end;
var x,y: integer;
begin
clrscr;
writeln('Vvedite x y :');
readln(x,y);
writeln (NOK(x,y));
readln;
end.
Другие вопросы из категории
else с:= b-a;
2) Чнму равна сумма элементов а{1} и а{4} массива, сформированного следующим образом.
for i:= 1 to 5 a{i} :=i*(i+1)
степень использовать нельзя
б)в одном операторе присваивания не более одной арифметической операции(сложение, умножение, вычитание)
в) должно быть не более пяти операторов присваивания.
Подсказка (x+2,5)x-1)x+1
Читайте также
результат
2.дано целое число.напишите,программу которая выводит на экран последнюю цифру данного числа,затем возводит ее в квадрат и выводит на экран монитора результат
вывести 0.
С выводом минимального положительного числа у меня вроде бы получилось, а вот с проверкой на отрицательность не вышло
2.Дано целое число N.Написать программу ,заменяющую его нулём ,если больше или равно нулю,и увеличивающая его в 2 раза ,если число меньше нуля.
3 .Дано целые числа a и b .Написать программу , которая выводит сначала большее число ,затем меньшее.
4.Даны числа a,b,c.Написать программу ,выводящую их в возрастающем порядке.
ПЛИЗ ПОМОГИТЕ
ВХОДНЫЕ ДАННЫЕ
Одно целое положительное число, не превышающее 1000. Одно целое положительное число, не превышающее 1000. ВЫХОДНЫЕ ДАННЫЕ Выведите то же самое число. На языке С
первой цифре заданного числа, а число единиц-последней. Например: 3234 => 34.