Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
10.12.2013
Размер:
1.3 Кб
Скачать
program primes(input, output);
type
    PrimeList = packed list of integer;
var
    primes : PrimeList;
    num, i, candidate : integer;

    function IsPrime : boolean;
    var
       i, x : integer;
    begin
       for i := 1 to length(primes) do
          begin
             x := primes[i];
             if candidate mod x = 0 then
                exit(false);
             if primes[i] > trunc(sqrt(candidate)) then
                exit(true)
          end;
       writeln('Overrun');
    end;

    procedure GenPrime;
    begin
       repeat
          candidate := candidate + 2;
          if IsPrime then
             begin
                writeln(candidate);
                insert(candidate, primes);
                exit
             end
       until candidate = maxint;
       writeln('Error')
    end;

begin
    write('Enter number of primes to generate ');
    readln(num);
    if (num<3) or (num > 10000) then
       begin
          writeln('primes must be between 3 and 10000');
          exit
       end;
    new(primes);
    insert(2, primes);
    insert(3, primes);
    insert(5, primes);
    writeln(2);
    writeln(3);
    writeln(5);
    candidate := 5;
    for i := 4 to num do
       GenPrime;
    dispose(primes);
end.
Соседние файлы в папке samples