Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Паскаль, Нужно найти простые числа в промежутке. Вот что получилось. Помогите.

TES SKYRIM Ученик (107), закрыт 5 лет назад
Дополнен 7 лет назад
var a,b,v,n: integer;
begin
writeln('Введите кол. чисел');
readln(n,a);
for b:=n to (a div 2) do
begin
if (a div b)=0 then v:=v+0
else v:=v+1;
end;
writeln('Кол. простых: ',v);
end.
Лучший ответ
Александр Устименко Просветленный (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;
Антонина ПерееваМудрец (10032) 7 лет назад
Число простое если делится только на себя?
Павел Н Мудрец (10660) Верно, и ещё на единицу
Похожие вопросы