Вопрос задан 04.11.2023 в 05:28. Предмет Информатика. Спрашивает Любимцев Никита.

Напечатайте в порядке возрастания первые 1000 чисел, которые не имеют простых делителей, кроме 2,

3, 5. (2, 3, 4, 5, 6, 8, 9, 10, 12, …).(программа в Паскаль. )Может кто знает как, даю 50 баллов.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кокунов Данила.

Ответ:

алгоритм далек от совершенства, медленный, но считает правильно. Паскаль

Объяснение:

var

 col: integer;

 i, k: longint;

 del: boolean;

function prost(a: longint): boolean;

var c: integer;

begin

 prost := a >= 2;

 for c := 2 to trunc(sqrt(a)) do if a mod c = 0 then prost := false;

end;

begin

 i := 2;

 col := 1;

 repeat

   del := (i mod 2 = 0) or (i mod 3 = 0) or (i mod 5 = 0);

   for k := 6 to i div 2 do if (prost(k) = true) and (i mod k = 0) then del := false;

   if del then

   begin

    Write(i, ', ');

    inc(col);

   end;

   inc(i);

 until col > 1000;

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Приведу программу на языке Pascal, которая выводит первые 1000 чисел, не имеющих простых делителей, кроме 2, 3 и 5:

```pascal program NonPrimeDivisors; var numbers: array[1..1000] of Integer; count, i, j: Integer;

function IsPrime(num: Integer): Boolean; var k: Integer; begin if (num = 2) or (num = 3) or (num = 5) then IsPrime := True else if (num = 1) or (num mod 2 = 0) or (num mod 3 = 0) or (num mod 5 = 0) then IsPrime := False else begin k := 5; while (k * k <= num) do begin if (num mod k = 0) or (num mod (k + 2) = 0) then begin IsPrime := False; Exit; end; k := k + 6; end; IsPrime := True; end; end;

begin count := 0; i := 1; while count < 1000 do begin if IsPrime(i) = False then begin numbers[count + 1] := i; count := count + 1; end; i := i + 1; end; for j := 1 to 1000 do writeln(numbers[j]); end. ```

В данной программе используется функция `IsPrime`, которая проверяет, является ли число простым или имеет другие простые делители кроме 2, 3 и 5. Если число не является простым, оно записывается в массив `numbers`. По завершении цикла программа выводит первые 1000 чисел этого массива.

Надеюсь, это поможет вам! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос