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

(для паскаля) два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве делителя не рассматривается). найти все пары натуральных дружественных чисел, меньших 50 000.

👇
Ответ:
// PascalABC.NET 3.2, сборка 1379 от 21.01.2017
// Внимание! Если программа не работает, обновите версию!

function snd(n:integer):integer;
begin
  Result:=1;
  for var i:=2 to n div 2 do
    if n mod i=0 then Result+=i
end;

begin
  for var i:=1 to 50000 do
    for var j:=i+1 to 50000 do
      if (snd(i)=j) and (snd(j)=i) then Print((i,j))
end.

Результат
(220,284) (1184,1210) ... запускайте и ждите, если больше заняться нечем.
4,8(67 оценок)
Открыть все ответы
Ответ:
ksp86450
ksp86450
21.06.2020
1.
Var a,b,pr:integer;
Begin
pr:=1;   
write('Вводите числа, когда закончите - введите 0. '); readln(a);
while (a<>0) do  begin 
 if (a>0) and (a<10) then begin b:=b+1; pr:=pr*a; end; readln(a)  end;
Writeln('Чисел, больше 0 и меньше 10: ',b,' их произведение:',pr);end.

2.
Var a,b,c,i,sum,f:integer;
Begin
 Write('Введите 10 двузначных чисел: '); repeat readln(a); until(a>=10) and (a<100);
for i:=1 to 10 do 
  begin 
     repeat readln(a); until(a>=10) (a<100)
      b:=a mod 10;
      c:=a div 10;
       sum:=b+c;
        if (sum mod 2 = 0) then f:=f+1;
end;
Writeln('Кол-во цифр, удовлетворяющих условию: ',f);
end.

3.
Var a,b,c:integer;
Begin 
  write('Вводите целые положительные числа.');
repeat
   readln(a);
b:=b+a;
c:=c+1;
 until (b>100);
Writeln('Кол-во введёных чисел:',c,' их сумма:',b);
end.
   
4,7(65 оценок)
Ответ:
сонька177
сонька177
21.06.2020
Var m : array[0..6] of Integer;
  i,k,N : Integer;
Begin
  For i:=0 to 6 do m[i]:=0;
  Readln(N);
  k:=6;
  While N>0 do
  Begin
    If N>=Power(2,k) then
    Begin
      N:=N-Trunc(Power(2,k));
      Inc(m[k]);
    end else Dec(k);
  end;
  For i:=0 to 6 do Writeln(Power(2,i),'  ',m[i],' шт.');
end.

Еще вариант:
Const
  NN = 7;
  money : array[1..7] of Integer = (1,2,4,8,16,32,64);
Var m : array[1..NN] of Integer;
  i,k,N : Integer;
Begin
  For i:=1 to NN do m[i]:=0;
  Readln(N);
  k:=NN;
  While N>0 do
  Begin
    If N>=money[k] then
    Begin
      N:=N-money[k];
      Inc(m[k]);
    end else Dec(k);
  end;
  For i:=1 to NN do Writeln(money[i],'  ',m[i],' шт.');
end.
4,7(42 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ