М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
NataliGuk
NataliGuk
19.03.2022 03:55 •  Информатика

Даны целые положительные числа a и b найдите их наименьшее общее кратное нок используя алгоритм евклида: нок(a,b)=нок(b,a mod b), если b не равен 0; nok(a; 0)=a

👇
Ответ:
sudak7
sudak7
19.03.2022

сори в начале не понял, что нужен евклид, я исправился: 

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.

4,7(74 оценок)
Ответ:
Раисат432178
Раисат432178
19.03.2022

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.

 

4,6(21 оценок)
Открыть все ответы
Ответ:
виквик4
виквик4
19.03.2022
Из небольших ускорений можно предложить проверять до b[c], дальше всё равно ничего нет. Но всё равно алгоритм будет делать порядка n^2 операций, что при n = 10^5 достаточно много. Кстати, 2*10^9 еще помещается в longint, int64 не нужен.

Можно пойти другим путём. Отсортируем массив A[i] за n log n, а потом для того, чтобы определить уникальные элементы, достаточно одного прохода по массиву.
Я буду сортировать сортировкой слиянием, вы можете использовать любую другую достаточно быструю сортировку.

procedure merge(var a: array of longint; left1, right1, left2, right2: integer);
var
  temp: array of longint;
  i, j, k: integer;
 
begin
  setLength(temp, right1 - left1 + right2 - left2 + 2);
  i := left1;
  j := left2;
  k := 0;
  while (i <= right1) and (j <= right2) do
  begin
    if a[i] <= a[j] then
    begin
      temp[k] := a[i];
      inc(i);
    end else begin
      temp[k] := a[j];
      inc(j);
    end;
    inc(k);
  end;
  while i <= right1 do
  begin
    temp[k] := a[i];
    inc(k);
    inc(i);
  end;
  while j <= right2 do
  begin
    temp[k] := a[j];
    inc(k);
    inc(j);
  end;
  for i := left1 to right1 do
    a[i] := temp[i - left1];
  for j := left2 to right2 do
    a[j] := temp[j - left2 + right1 - left1 + 1];
end;
 
procedure mergeSort(var a: array of longint; left, right: integer);
var
  t: longint;
 
begin
  if right - left = 0 then exit;
  if right - left = 1 then
  begin
    if a[left] > a[right] then
    begin
      t := a[left];
      a[left] := a[right];
      a[right] := t;
    end;
    exit;
  end;
  mergeSort(a, left, (left + right) div 2);
  mergeSort(a, (left + right) div 2 +  1, right);
  merge(a, left, (left + right) div 2, (left + right) div 2 + 1, right);
end;
 
var
  a: array of longint;
  i, n, count: integer;
 
begin
  read(n);
  setLength(a, n);
  for i := 0 to n - 1 do
    read(a[i]);
  mergeSort(a, 0, n - 1);
  count := 1;
  for i := 1 to n - 1 do
    if a[i] <> a[i - 1] then
      inc(count);
  writeln(count);
end.
4,4(74 оценок)
Ответ:
shamsutdinovaa3
shamsutdinovaa3
19.03.2022

Дорогие друзья, Я Приц своё планеты и хочу пожелать вам только лучшего. Пусть вся планета будет цвести как розы...Я не житель вашей планеты, но все же Знайте без войны и разрушений ваша планета становиться лучше. Друзья это самое лучшее что есть у вас и думаю не каждый правильно знает это слово... Будьте добрее к другим, не засоряйте планету и цените жизнь.

Ну и на конец все что вас окружает создавали потомки целыми годами и веками, а я от лица другой планеты надеюсь что вы не испортит труды...( что то из этого можешь использовать... Хотя не особо по теме.)

4,7(40 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ