2. Удалить из массива целых положительных элементов совершенные числа. Создать функции для определения совершенного числа и удаления элементов массива.
2. Удалить из массива целых положительных элементов совершенные числа. Создать функции для определения совершенного числа и удаления элементов массива.
1. обнуляем сумму
2. в цикле i от 1 до корня из n и пока сумма не превосходит n проверяем, является ли i делителем для n. если является то суммируем i и (n div s) , результат заносим в s.
3. если S равна n то число совершенное
Код:
data: begin of itab occurs 0,
value type i,
end of itab.
data: res type c.
do 500 times.
itab-value = sy-index.
append itab.
enddo.
loop at itab.
perform isperfect using itab-value changing res.
if res eq 'X'.
perform del_from_array tables itab using sy-tabix.
endif.
endloop.
write:/ 'Конечный массив:'.
loop at itab.
write:/ itab-value.
endloop.
form isperfect using number type i changing result type c.
data: sum type i value 0 , curr type i value 1 , f type i.
curr = number div 2.
do curr times.
f = number mod sy-index.
if f eq 0.
sum = sum + sy-index.
endif.
enddo.
if sum eq number.
write: / 'Совершенное:' , number.
result = 'X'.
else.
result = ''.
endif.
endform.
form del_from_array tables itab using index type i.
delete itab index index.
endform.
value type i,
end of itab.
data: res type c.
do 500 times.
itab-value = sy-index.
append itab.
enddo.
loop at itab.
perform isperfect using itab-value changing res.
if res eq 'X'.
perform del_from_array tables itab using sy-tabix.
endif.
endloop.
write:/ 'Конечный массив:'.
loop at itab.
write:/ itab-value.
endloop.
form isperfect using number type i changing result type c.
data: sum type i value 0 , curr type i value 1 , f type i.
curr = number div 2.
do curr times.
f = number mod sy-index.
if f eq 0.
sum = sum + sy-index.
endif.
enddo.
if sum eq number.
write: / 'Совершенное:' , number.
result = 'X'.
else.
result = ''.
endif.
endform.
form del_from_array tables itab using index type i.
delete itab index index.
endform.
SAP овладевае, Голактеко опасносте! :)
в с++ надо))