1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.6 Упр.20 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.6 Упр.20 ГДЗ Семакин 10 класс (Информатика)

Задача

Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 20. Сформировать массив простых множителей заданного числа. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-6/20 98

Подробный ответ

Нужно сформировать массив простых множителей числа. Для этого используем проверку числа на простоту и рекурсивное разложение на множители.

Сначала определим функцию Prstoe(N), которая возвращает True, если число $$N$$ простое, и False в противном случае. Число считается простым, если оно не делится ни на одно число от $$2$$ до $$N-1$$.

Затем процедура Find(N) перебирает делители числа $$N$$ от $$2$$ до $$N$$. Если $$I$$ делит $$N$$ и $$I$$ — простое число, то:

  • увеличивается счётчик элементов массива;
  • в массив A записывается найденный простой множитель;
  • если $$N \div I = 1$$, то разложение закончено;
  • иначе вызывается Find(N div I) для дальнейшего разложения частного.

В основной программе после вызова Find(N) выводятся все найденные простые множители.

var A: array[1..100] of Integer;
F: Boolean;
C, N: Integer;

function Prstoe(N: Integer): Boolean;
var I: Integer;
B: Boolean;
begin
B := True;
for I := 2 to N — 1 do
if N mod I = 0 then B := False;
Prstoe := B;
end;

procedure Find(N: Integer);
var I: Integer;
begin
for I := 2 to N do
if (N mod I = 0) and Prstoe(I) then
begin
Inc(C);
A[C] := I;
if N div I = 1 then
F := True
else
Find(N div I);
if F then Exit;
end;
end;

begin
C := 0;
ReadLn(N);
Find(N);
N := 0;
repeat
Inc(N);
WriteLn(A[N]);
until A[N + 1] = 0;
ReadLn;
end.

Таким образом, программа последовательно находит все простые множители заданного числа и записывает их в массив A.



Общая оценка
4.4 / 5
Другие учебники
Другие предметы