Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Polina
1 / 1 / 0
Регистрация: 29.04.2014
Сообщений: 5
1

Дано простое число. Составить функцию, которая будет находить следующее за ним простое число

29.04.2014, 18:47. Просмотров 1918. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста решить задачу в Паскале
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 18:47
Ответы с готовыми решениями:

Дано простое число Найти следующее простое число
Дано простое число n. Найти следующее простое число.

функцию, которая будет находить следующее за ним простое число
Дано простое число. Составить функцию, которая будет находить следующее за ним...

Создать программу, которая найдет наименьшее число, который взаимное простое число с 60 и больше, чем введенное число
Создать программу, которая найдет наименьшее число, который взаимное простое...

Вывести на экран следующее за заданным простое число
дано простое число n. Нужно вывести на экран следующее простое число. Например:...

Рекурсия: создать логическую функцию, которая возвращает True, если ее аргумент - простое число
С помощью рекурсии, создать логическую функцию, которая возвращает True, если...

6
Gabdulhanov
18 / 18 / 39
Регистрация: 22.03.2014
Сообщений: 79
29.04.2014, 19:33 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var
  i: Integer;
  a:longint;
  function IsSimple(const n: Integer): Boolean;
  var
    i: Integer;
  begin
    IsSimple:=True;
    for i:=2 to Trunc(Sqrt(n)) do
      if (n mod i)=0 then
      begin
        IsSimple:=False;
        Break
      end
  end;
 begin
 Write('Vvedite a:');
 Readln(a);
  i:=1;
  if (IsSimple(a)) then
   begin
   a:=a+1;
  while not(IsSimple(a)) do a:=a+1;
  WriteLn('next_a=',a);
  end
  else WriteLn('Ne_prostoe');
end.
0
Зотов_из_ОСА
Аналитик
79 / 79 / 63
Регистрация: 24.04.2014
Сообщений: 465
Записей в блоге: 15
29.04.2014, 20:04 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var x,y: integer;
function nexteasy(x: integer; var y: integer): ineteger;
begin
      repeat
          icn(x);
            for i:=1 to x  do
            begin
              if x mod  i = 0 then icn(e);
            end;
           e:=0;
      until (e =2) and (i=x)
      y:=x;
end;
begin
repeat
readln(x);
for i:=1 to x  do
    begin
       if x mod  i = 0 then icn(e);
    end;
until (e=2) and (i=x);
t:=nexteasy(x,y);
writeln('следующее простое число', t);
end.
Добавлено через 12 минут
Gabdulhanov, задача поставлена так:
Дано простое число.
А не
введите число и определите постое ли оно и если оно простое найдите следующее за ним простое число
Я говорю это к тому что нужно было в цикле repeat организовывать одновременно и ввод и проверку на простоту.

Добавлено через 1 минуту
забыл строчку
Pascal
1
2
3
4
5
repeat
readln(x);
e:=0;
for i:=1 to x  do if x mod  i = 0 then icn(e);
until (e=2) and (i=x);
Добавлено через 3 минуты
и еще вопрос: к чему 20 строчка?
0
Cyborg Drone
Модератор
5471 / 3287 / 2480
Регистрация: 17.08.2012
Сообщений: 10,551
30.04.2014, 05:07 4
Зотов_из_ОСА, для определения простоты числа незачем искать все делители числа. Достаточно, как сделал Gabdulhanov. Вот это у Вас вообще перл:
Цитата Сообщение от Зотов_из_ОСА Посмотреть сообщение
Pascal
1
2
3
4
repeat
//...
           e:=0;
      until (e =2) and (i=x)
Спасибо, повеселили. И вообще:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
program Project1;
var x,y: integer;
function nexteasy(x: integer; var y: integer): ineteger; //что за ineteger?
                              // ^ Тут просто необходимо параметр y передать по значению
begin
      repeat
          icn(x); //icn, ну-ну...
            for i:=1 to x  do //i Пушкин пусть объявляет
            begin //Вот этот begin
              if x mod  i = 0 then icn(e); //Ну раз i не объявлено, e тоже не надо объявлять
            end; //и вот этот end, без них не обойтись.
           e:=0; //Эпохальный момент. e:=0, поэтому
      until (e =2) and (i=x) //условие никогда не будет истиным. Незачем это.
      y:=x; //Строчкой выше нет точки с запятой. Это пустяк и совершенно не важно.
end;
begin
repeat
readln(x);
//Строчку не написал. Ну да ладно.
for i:=1 to x  do //x на простоту проверяем, и следующее простое ищем,
                  //функцию для этого написали... Неплохо было бы наоборот,
                  //написать функцию для определения простоты числа,
                  //да ею всё и проверять... Да ладно, лишний код не помешает...
    begin //Вот этот begin
       if x mod  i = 0 then icn(e); //icn... И бедное i... Необъявленное...
    end; //и вот этот end, без них не обойтись.
until (e=2) and (i=x);
t:=nexteasy(x,y);
writeln('следующее простое число', t);
end.
Зотов_из_ОСА, прошу Вас... Поменьше критикуйте чужой код, сначала разберитесь в нём, может статься, что чужой код оптимальнее, чем Ваш, и, возможно, вернее. И ещё, всегда тестируйте код, перед тем, как выкладывать его на форум. Иначе можно написать неверный ответ, а это нехорошо. И, прошу Вас, думайте, перед тем, как критиковать чужие труды. Полагаю, Вы меня поняли.
1
Зотов_из_ОСА
Аналитик
79 / 79 / 63
Регистрация: 24.04.2014
Сообщений: 465
Записей в блоге: 15
30.04.2014, 10:12 5
Pascal
1
2
3
4
repeat
//...
           e:=0;
      until (e =2) and (i=x)
е не в те строчку вставил, на 4 строки выше и все ок.
Pascal
1
2
3
4
5
6
7
8
repeat
          icn(x);
           e:=0;          
            for i:=1 to x  do
            begin
              if x mod  i = 0 then icn(e);
            end;
      until (e =2) and (i=x)
0
Cyborg Drone
30.04.2014, 10:55
  #6

Не по теме:

Конечно, я знаю, как уговорить Вашу программу работать. Будьте внимательнее в следующий раз.

0
Polina
1 / 1 / 0
Регистрация: 29.04.2014
Сообщений: 5
19.05.2014, 21:53  [ТС] 7
Спасибо большое
0
19.05.2014, 21:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2014, 21:53

Логическая функция возвращает True, если ее аргумент — простое число. Описать функцию, которая удаляет из строки все лиш
Логическая функция возвращает True, если ее аргумент — простое число. Описать...

Функция: простое число, совершенное число, число Фиббоначи, евклид, Факториал, степень.
Срочно нужна ваша помощь. все программы на школьном компе и я их не помню. они...

Вычислить первое простое число, превосходящее заданное натуральное число n
9. Вычислить первое простое число, превосходящее заданное натуральное число n


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru