Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2017, 15:07   #1
Kamelok
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 36
По умолчанию Доделать программу - найти НОД

Смог только задать последовательность, а как найти наибольший общий делитель не знаю. Задание звучит так: задано N натуральных чисел (N>10), найти наибольший общий делитель.
var x:array[1..10]of integer;
i,k:integer;
begin
write('Введите размер одномерной матрицы K<=10 - ');
readln(K);
randomize;
writeln('Массив x:');
for i:=1 to k do
begin
x[i]:=random(50)-1;
write(x[i],' ');
end;
end.
Kamelok вне форума Ответить с цитированием
Старый 10.12.2017, 15:18   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
Сообщение от Kamelok Посмотреть сообщение
наибольший общий делитель
Скорее всего наименьший.
Код:
var x:array[1..10]of integer;
    i,k,max,del:integer;
    d:boolean;
begin
   write('Введите размер одномерной матрицы K<=10 - ');
   readln(K);
   randomize;
   writeln('Массив x:');
   for i:=1 to k do
   begin
      x[i]:=random(50)+1;
      write(x[i],' ');
   end;
   Writeln;
   max:=x[1];
   For i:=2 to k do
      If max<x[i] then
         max:=x[i];
   del:=max;
   Repeat
      d:=true;
      For i:=1 to k do
         If del mod x[i]<>0 then
         begin
            d:=false;
            del:=del+max;
         end;
   Until d;
   Writeln(del);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 10.12.2017, 15:28   #3
Kamelok
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 36
По умолчанию

Спасибо за помощь, а почему он так выводит ответ. Вряд ли он наименьший общий делитель.
Введите размер одномерной матрицы K<=10 - 10
Массив x:
41 15 26 1 28 64 51 70 91 91
60889920
Kamelok вне форума Ответить с цитированием
Старый 10.12.2017, 15:44   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию


Потому что 60889920 делится на нижеуказанные числа без остатка!
41 15 26 1 28 64 51 70 91 91
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 11.12.2017, 10:33   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Скорее всего наименьший.
наибольший. рекомендую погуглить.

вот, например:
Цитата:
Наибольший общий делитель Общим делителем нескольких чисел называется число, которое является делите-лем каждого из них. Например, числа 36, 60, 42 имеют общие делители 2, 3 и 6. Среди всех общих делителей всегда есть наибольший, в данном случае это 6.

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Потому что 60889920 делится на нижеуказанные числа без остатка!
путаете делимое и делитель. срочно повторить курс начальной школы!

p.s. это Вы перепутали с НОК (наименьшее общее кратное).

Последний раз редактировалось Serge_Bliznykov; 11.12.2017 в 10:41.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2017, 10:00   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
var x:array[1..10]of integer;
    i,k,del:integer;
    d:boolean;
begin
   write('Введите размер одномерной матрицы K<=10 - ');
   readln(K);
   randomize;
   writeln('Массив x:');
   for i:=1 to k do
   begin
      x[i]:=random(50)+1;
      write(x[i],' ');
   end;
   Writeln;
   del:=x[1];
   Repeat
      d:=true;
      For i:=1 to k do
         If x[i] mod del<>0 then
         begin
            d:=false;
            del:=del-1;
         end;
   Until d;
   Writeln(del);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти НОД всех цифр числа х HelloVikiend Общие вопросы C/C++ 1 02.11.2017 18:52
Найти НОД максимального элемента массива и количество элементов. Zzoyberg Помощь студентам 0 28.12.2011 03:11
Найти НОД максимального элемента массива и количество элементов. Zzoyberg Паскаль, Turbo Pascal, PascalABC.NET 1 07.12.2011 16:27
Найти НОД Илья555 Помощь студентам 0 26.04.2011 18:50
Найти НОД Илья555 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 26.04.2011 09:11