• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Паскаль Циклы И Числа

  • Автор темы Guest
  • Дата начала
G

Guest

на паскале

Найти и вывести на экран 5 простых чисел больших некоторого заданного числа K.

Код:
program one;
uses crt;
var k,n,x,i,j,b:integer;
begin clrscr;
write('vv k = '); read(k);
x:=0;
b:=15+k;
while x>5 do
begin
for i:=2 to b do begin
n:=0;
for j:=2 to trunc(sqrt(i)) do begin
if i mod j =0 then inc(n);
if (n=0) and (i>k) then begin writeln(i:4); x:=x+1;end; end;
end;
end;
readkey;
end.
 
G

Guest

вопрос номер раз: для чего нужна переменная b?
она используется в цикле с параметром

Добавлено:
логическая ошибка


цикл не будет выполняться, потому что х меньше 5...
поменяй ">" на "<"

:(
аа поняла спасибо большое=))
 
S

Senset

для чего? почему именно +15? просто логики в вашем алгоритме ни капельки
потому что нужны числа большие, чем k... если не видите логику... а не важно

хотя вы конечно немного переусердствовали с циклами...
Код:
uses crt;

var k,b,n,i:integer;
is_simple:boolean;

begin
clrscr;
write('vv k=');read(k);
n:=0;
b:=k+1;
while n<5 do
begin
i:=2;
is_simple:=true;
while (is_simple)and(i<=trunc(sqrt(b))) do
begin
if b mod i=0 then is_simple:=false;
i:=i+1;
end;
if is_simple then
begin
writeln(b);
n:=n+1;
end;
b:=b+1;
end;
readkey;
end.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!