Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 19:27   #1
dex92
 
Регистрация: 10.05.2010
Сообщений: 5
По умолчанию Поиск простых чисел из диапазона

Прошу помощи, вроде сделал своим умом все правильно, но в результате пишет: 0.


Составить процедуру поиска простых чисел в диапазоне от 0 до 1000.



Код:
procedure TForm1.Button1Click(Sender: TObject);
var m,l:integer;

Procedure FIND (z:integer);
var i,j,lim: integer;
begin
for i:=1 to z do
j:=2;
lim:=round(sqrt(i));
while (i mod j <> 0) and (j <= lim) do inc( j );
if (j > lim) then i:=l;

end;


begin
m:=strtoint(edit1.text);
Find (m);
label2.Caption:=inttostr(l);
end;

end.
P.S. Нашел правда "код для поиска чисел" только от 1 до ... (хотя нужно от 0), но ведь это сути не меняет.

Последний раз редактировалось dex92; 20.05.2010 в 19:32.
dex92 вне форума Ответить с цитированием
Старый 20.05.2010, 22:47   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Код:
program p;

var
	N, i, j, k: integer;
	
begin
	N := 15;
	k := 0;
	for i := 0 to N do begin
		for j := 2 to i - 1 do begin
			if ( i mod j <> 0 ) then
				inc(k);
		end;
	end;
end.
k - здесь будет кол0во простых чисел
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 21.05.2010, 09:40   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Простые числа хоть от нуля, хоть от единицы, хоть от двух - количество будет одно и то же! А знаете почему?
Потому что:
Последовательность простых чисел начинается так:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,



поиск написан с грубыми ошибками.
главная ошибка - нет операторных скобок begin/ end в цикле по i
вторая ошибка - кто счётчик наращивать то будет?!

попробуйте так:
Код:
Procedure FIND (z:integer);
var i,j,lim: integer;
begin
  L := 0;
  for i:=2 to z do begin
     j:=2;
     lim:=round(sqrt(i));
     while (i mod j <> 0) and (j <= lim) do inc( j );
     if (j > lim) then inc(L);
  end;
end;
p.s. исправлял прямо в браузере, возможны опечатки..

p.p.s. слово "Количество" пишется с одной буквой Л

Последний раз редактировалось Serge_Bliznykov; 21.05.2010 в 09:43.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм нахождения простых чисел ardor Помощь студентам 1 20.11.2009 00:00
Помогите с выводом простых чисел на Pascal nec117 Помощь студентам 2 19.09.2009 18:49
Нахождение простых чисел. Lunex.08 Общие вопросы C/C++ 7 10.04.2009 17:01
Вывод простых чисел. MAKEDON Помощь студентам 1 10.03.2009 16:55
поиск простых чисел методом решета.программа на С или С++ из_семи Помощь студентам 2 25.02.2009 20:56