Страница 1 из 1

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

Добавлено: 28 окт 2009, 17:49
Анна Я
Вводится длина одномерного массива, состоящего из целых чисел, и его элементы. Найти самую большую сумсму делителей одного элемента

Re: Помогите с написанием программы на Паскале

Добавлено: 28 окт 2009, 21:09
Sheka
Сделаю. Обязательно договоримся! 255507394.

Уважаемые админы и модераторы! сделайте, пожалуйста, личную переписку, раз уже нельзя писать во фрилансе предложения помощи!!!

Re: Помогите с написанием программы на Паскале

Добавлено: 28 окт 2009, 23:44
azrael
Пишите в аську 55655222 - помогу.

Re: Помогите с написанием программы на Паскале

Добавлено: 29 окт 2009, 09:07
BHy4ok
Ввод чисел сделал рендомный. Если необходимо, то сделайте ручным.

[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]

Re: Помогите с написанием программы на Паскале

Добавлено: 29 окт 2009, 09:26
Хыиуду
Можно и оптимизировать

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

  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 заведомо нет ни одного делителя числа х, кроме самого этого числа. Кстати - вопрос, следует ли считать это в условиях самой задачи.

Анна Я, второе и последнее китайское предупреждение - называйте темы правильно. В противном случае буду удалять

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

Добавлено: 30 окт 2009, 11:04
atavin-ta
&quot писал(а):Вводится длина одномерного массива, состоящего из целых чисел, и его элементы. Найти самую большую сумсму делителей одного элемента
Так и знал, что на самом деле тема называется "Поиск максимума суммы делителей", а не через запятую, как это написано.

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

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