На натуральном отрезке [a,b] найдите и выведите число N с наибольшей суммой своих делителей - Pascal ABC
Формулировка задачи:
на натуральном отрезке [a,b] найдите и выведите число N с наибольшей суммой своих делителей Через Repeat или While
Программа выводит нули. Помогите решить правильно.
Листинг программы
- var a,b,i,j,s,max,N,d: longint;
- begin
- write('Введите натуральное число a=');
- readln(a);
- write('Введите натуральное число,больше ',a,' b=');
- readln(b);
- max:=0;
- d:=1;
- repeat
- s:=0;
- for j:=2 to i div 2 do
- if i mod j=0 then s:=s+j;
- if s>max then
- begin
- max:=s;
- N:=i;
- end;
- d:=d+1;
- until d<b;
- write('Наибольшую сумму делителей=',max,' имеет число ',N);
- end.
Решение задачи: «На натуральном отрезке [a,b] найдите и выведите число N с наибольшей суммой своих делителей»
textual
Листинг программы
- var
- a, b, i, j, s, max, N, d: longint;
- begin
- write('Введите натуральное число a=');
- readln(a);
- write('Введите натуральное число,больше ', a, ' b=');
- readln(b);
- max := 0;
- d := a;
- i := b;
- repeat
- s := 0;
- for j := 2 to i div 2 do
- if i mod j = 0 then
- s := s + j;
- if s > max then
- begin
- max := s;
- N := i;
- end;
- d := d + 1;
- until d < b;
- write('Наибольшую сумму делителей=', max, ' имеет число ', N);
- end.
Объяснение кода листинга программы
- В первой строке кода объявляются переменные a, b, i, j, s, max и N, которые будут использоваться для решения задачи. Переменная d инициализируется значением типа longint.
- Затем происходит чтение значений переменных a и b с помощью функции readln.
- Переменная max инициализируется значением 0.
- Переменная d инициализируется значением переменной a.
- Переменная i инициализируется значением переменной b.
- Затем идет цикл repeat, который будет выполняться до тех пор, пока переменная d не станет меньше переменной b.
- Внутри цикла переменная s инициализируется значением 0.
- Для каждого числа j (от 2 до i/2) выполняется проверка, делится ли число i на j без остатка. Если да, то к переменной s прибавляется значение j.
- Если сумма делителей числа i больше значения переменной max, то переменные max и N инициализируются соответствующими значениями.
- После окончания внутреннего цикла переменная d увеличивается на 1.
- Когда переменная d становится меньше переменной b, цикл repeat завершается.
- В последней строке кода выводится сообщение, содержащее значения переменных max и N.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д