type R = record v: integer; p: integer end; mR = array[1..n] of R;
function SummOfDigits(n: integer): integer; { Сумма цифр в трехзначном числе } begin SummOfDigits := (n div 100) + ((n mod 100) div 10) + (n mod 10) end;
procedure Swp(var a, b: R); { Меняет местами элементы a и b } var t: R; begin t.v := a.v; t.p := a.p; a.v := b.v; a.p := b.p; b.v := t.v; b.p := t.p end;
procedure Shell(var a: mR; n: integer); { сортировка методом Шелла } var i, j, step: integer;
begin step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if a[i].v > a[i + step].v then Swp(a[i], a[i + step]); i := i + step end end; step := step div 2 end end;
var a: array[1..n] of integer; b: mR; i: integer;
begin Randomize; Writeln('*** Исходные элементы массива ***'); for i := 1 to n do begin a[i] := Random(900) + 100; b[i].v := SummOfDigits(a[i]); b[i].p := i; Write(a[i]:4) end; Writeln; Shell(b, n); Writeln('*** Упорядоченные по возрастанию суммы цифр элементы массива ***'); for i := 1 to n do begin Write(a[b[i].p]:4) end; Writeln end.
begin i := 3; k := 0; repeat s := 1; for d := 2 TO Trunc(sqrt(i)) do begin n := (i div d); if n * d = i then s := s + d + (i div d); end; if int(sqrt(i)) = sqrt(i) then s := s - Trunc(sqrt(i)); if s = i then k := k + 1; i := i + 1 until (k = 3); Writeln('Третье совершенное число равно ',s) end.
Тестовое решение: Третье совершенное число равно 496
const k=35; { k-е по порядку простое число }
var i,j,n,m:integer;
begin n:=1; i:=1; repeat j:=2; m:=round(sqrt(i)); while (i mod j <>0) and (j<=m) do j:=j+1; if j>m then n:=n+1; i:=i+1 until (n=k); Writeln(i-1) end.
Тестовое решение: 137
var n, d1, d2, d3: integer;
begin Write('Введите трехзначное число ->'); Readln(n); d1 := (n div 100); d2 := ((n mod 100) div 10); d3 := (n mod 10); if (d1 * d2 * d3 in [100..999]) then Writeln('Произведение цифр трехзначное') else Writeln('Произведение цифр не трехзначное') end.
Тестовое решение: Введите трехзначное число ->518 Произведение цифр не трехзначное
*** В блок-схемах использованы обозначения: sqrt(x) - квадратный корень от х; \ - операция целочисленного деления % - операция остатка от целочисленного деления
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку