Поиск максимума, сумма делителей

Ответить
Анна Я
Сообщения: 2
Зарегистрирован: 28 окт 2009, 15:44

Вводится длина одномерного массива, состоящего из целых чисел, и его элементы. Найти самую большую сумсму делителей одного элемента
Аватара пользователя
Sheka
Сообщения: 246
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

Сделаю. Обязательно договоримся! 255507394.

Уважаемые админы и модераторы! сделайте, пожалуйста, личную переписку, раз уже нельзя писать во фрилансе предложения помощи!!!
Мои мысли настолько гениальны, что санитары уже приехали!
Ася 255507394.
azrael
Сообщения: 89
Зарегистрирован: 31 май 2009, 15:30
Контактная информация:

Пишите в аську 55655222 - помогу.
BHy4ok
Сообщения: 237
Зарегистрирован: 01 май 2007, 09:03
Откуда: г.Находка
Контактная информация:

Ввод чисел сделал рендомный. Если необходимо, то сделайте ручным.

[syntax='Pascal']
uses
Crt;
var
a:array[0..100] of integer;
i,j,n,k,max,pos,z:integer;
begin
ClrScr;
k:=0;
max:=0;
write('Введите кол-во элементов массива: ');
readln(n);
writeln;
randomize;
for I := 1 to n do
a:=random(50);
for I := 1 to n do
writeln(i, ' - ', a);
writeln('------------');
for I := 1 to n do
begin
for j := 1 to a do
If (a mod j = 0) then
k:=k+j;
if max<k then
begin
max:=k;
z:=a;
pos:=i;
end;
k:=0;
end;
writeln('Максимальная сумма делителей = ',max);
writeln('Позиция = ',pos);
writeln('Число = ',z);
readln;
end.
[/syntax]
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Можно и оптимизировать

Код: Выделить всё

  for I := 1 to n do
    a[i]:=random(50);
  for I := 1 to n do
      writeln(i, ' - ', a[i]);
Ничто не мешает сделать это одним циклом

Код: Выделить всё

  for I := 1 to n do
begin
    a[i]:=random(50);
    writeln(i, ' - ', a[i]);
end;
Далее, for j := 1 to a do
лучше for j := 1 to a) div 2 do
Потому что из чисел от x/2+1 до x заведомо нет ни одного делителя числа х, кроме самого этого числа. Кстати - вопрос, следует ли считать это в условиях самой задачи.

Анна Я, второе и последнее китайское предупреждение - называйте темы правильно. В противном случае буду удалять
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):Вводится длина одномерного массива, состоящего из целых чисел, и его элементы. Найти самую большую сумсму делителей одного элемента
Так и знал, что на самом деле тема называется "Поиск максимума суммы делителей", а не через запятую, как это написано.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

atavin-ta писал(а):Так и знал, что на самом деле тема называется "Поиск максимума суммы делителей", а не через запятую, как это написано.
Согласитесь, что из двух кусков легко сложить целое.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить