М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
val40
val40
29.03.2020 05:45 •  Информатика

Напишите программу получения всех совершенных чисел из диапазона от 1 до написать через цикл while.

👇
Ответ:

var n,i,j,s,k:integer;

begin

write('Введите число: ');

readln(n);

i:=1;

while i <= n do  

begin

j:=1;

s:=0;

while j<i

do

if i mod j = 0 then

begin

s:=s+j;

j:=j+1;

end

else

j:=j+1;

if s=i then

begin

k:=k+1;

if k=1 then write('Совершенные числа из диапазона от 1 до ',n,': ');

write(i,'  ')

end;

i:=i+1

end;

if k=0 then write('Совершенных чисел в диапазоне от 1 до ',n,' нет');

end.

4,8(8 оценок)
Открыть все ответы
Ответ:
karas14
karas14
29.03.2020
1. Две рядом стоящие цифры могут дать максимум 18 (сочетание 99), поэтому все четырехзначные варианты, содержащие пары больше 18 отбрасываем (1916,1619).
2. Результат 1616 может получиться только как комбинация 8+8, т.е исходным было число 888. Найдено первое число.
3. Результат 169 может быть образован из числа 881, это второе число.
4. Результат 163 никак не может быть получен, потому что 16 - это 9+7, 8+8 или 7+9, но даже 7, сложенное с 0 даст уже 7, а не 3.
5. Результат 316 по той же причине не может быть получен - число 3 это сумма 1+2, но даже 2+9 не даст 16.
6. Результат 916 может быть получен из 188, но только как комбинация 9,16, что нарушает порядок невозрастания. Бракуем.
7. Результат 116 может быть получен из 651, это третье число.
ответ: 3 числа.
4,6(4 оценок)
Ответ:
Shkolaetopolniyad
Shkolaetopolniyad
29.03.2020
1)var n,k: integer; begin   write('число:   ');   readln(n);   k: =0;   repeat     k: =k*10+n mod 10;     n: =n div 10;   until n=0;   writeln('новое число:   ',k); end. 2) var n,k,m: integer; begin  write('двоичное число:   ');   readln(n);   k: =1;   m: =0;   repeat    m: =m+k*(n mod 10);     n: =n div 10;     k: =k*2;   until n=0;   writeln('десятичное число:   ',m); end.
4,7(81 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ