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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 23:24   #1
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию Найти все простые числа в заданном диапазоне

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



program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
x,n,b:Int64;
p:word;
c:real;

begin
readln(b);
n:=1;
x:=1;
while (x<=b) do
begin
x:=x+1;
c:=(sqrt(x+1));
while (trunc(c))or(p<>0) do
begin
n:=n+1;
p:=x mod n;
end;
if n=(trunc(c)) then writeln(x);
end;
readln;

end.
Nikita++ вне форума Ответить с цитированием
Старый 19.10.2010, 23:33   #2
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

P.S. язык pascal
Nikita++ вне форума Ответить с цитированием
Старый 19.10.2010, 23:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

такие вещи удобно реализовавать через использование функций.
например:

Код:
function isPrime(X: LongInt): boolean;
var i: integer;
Begin
     isPrime:=false;
     if x<2 then Exit;
     if not odd(x) and (x<>2) { проверяем на чётность  }
          then exit;
     i:=3;
     while i <= sqrt(x) do { проверяем только нечётные }
     begin
          if x mod i = 0 then Exit;
          inc(i,2);
     end;
     isPrime:=true;
End;

var i, a, b : int64;
begin  
   WriteLn('Введите границы диапазона ( a .. b ):');
   Readln(a, b);
   for i:=a to b do
     if  isPrime(i) then WriteLn(i:1);
   Readln;
end.
и всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.10.2010, 23:42   #4
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

Спасибо большое, но ... в более простом виде нельзя? А то я тут некоторые вещи еще не знаю
Nikita++ вне форума Ответить с цитированием
Старый 19.10.2010, 23:49   #5
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

Код:
   for i:=a to b do
вот тут [Pascal Error] Project1.dpr(28): E2032 For loop control variable must have ordinal type;
Я программированием занимаюсь только 3 неделю(8 класс), так что не особо понимаю некоторые вещи.
Nikita++ вне форума Ответить с цитированием
Старый 20.10.2010, 00:14   #6
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Nikita++
Тип исправте на integer
Код:
var i, a, b : int64;
на
Код:
var i, a, b : integer;
Возможно поэтому компилятор ругается

Последний раз редактировалось Базиля; 20.10.2010 в 00:16.
Базиля вне форума Ответить с цитированием
Старый 20.10.2010, 19:43   #7
Nikita++
Пользователь
 
Регистрация: 19.10.2010
Сообщений: 80
По умолчанию

Все равно не хочет
Nikita++ вне форума Ответить с цитированием
Старый 20.10.2010, 20:05   #8
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

что не хочет?
если проблема в строке
Код:
isPrime:=true;
то исправь на
Код:
Result := true;
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 20.10.2010, 20:05   #9
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Двойной пост
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти из указанного диапазона все простые числа мария2507 Microsoft Office Excel 11 03.04.2010 17:38
в заданном массиве вывести все четные числа leysan Помощь студентам 2 09.12.2009 22:08
Найти все целочисленные решения уравнения 3x+4y=2z на заданном отрезке [L,R] Zmey_by_Nojabrsk Помощь студентам 3 18.10.2007 22:08