Александр Устименко
Просветленный
(24315)
7 лет назад
простые числа на участке [a,b]
var i, a, b, n: integer;
begin
write ('a=');
readln(a);
write ('b=');
readln(b);
a:=a-1;
b:=b-1;
repeat
inc(a);
n:=0;
for i:=2 to trunc(a/2)+1 do
if a mod i = 0 then inc(n);
if n=0 then write (a:4);
until (a>b);
end.
Кублен
Оракул
(97236)
7 лет назад
program prostoe; //простое число
uses crt;
var a:boolean;
i:integer;
function fl(k: integer): boolean;
var i:integer;
begin
fl:=false;
for i:=2 to trunc(sqrt(k+1)) do if k mod i = 0 then exit;
fl:=true;
end;
BEGIN
clrscr;
write(' ввести целое число -->'); readln(i);
a:= fl(i) ;
write(' число ');
if a then write(i,' простое ') else write(i,' не простое');
writeln;
writeln('конец задачи ');
readln;
end.
Павел Н
Мудрец
(10660)
7 лет назад
Что именно получает readln(n,a); от пользователя? Судя по коду интервал, в котором нужно искать простые числа, тогда не ясно для чего цикл заканчиваем (a div 2), вместо a.
В этом блоке должна быть проверка на целочисленное деление не только на число b, а на все числа от 2 до b. Если ни на одно из них не делиться, то увеличиваем счётчик.
begin
if (a div b)=0 then v:=v+0
else v:=v+1;
end;