Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 29.04.2014
Сообщений: 5
1

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

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

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста решить задачу в Паскале
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2014, 18:47
Ответы с готовыми решениями:

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

Дано целое число N (> 1). Если оно простое, то вывести сообщение: «Число N простое», иначе вывести сумму делителей
1) Дано целое число N (> 1). Если оно простое, то вывести сообщение: «Число N простое», иначе...

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

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

6
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
Аналитик
80 / 80 / 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
Модератор
9867 / 5235 / 3306
Регистрация: 17.08.2012
Сообщений: 16,006
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
Аналитик
80 / 80 / 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
1 / 1 / 0
Регистрация: 29.04.2014
Сообщений: 5
19.05.2014, 21:53  [ТС] 7
Спасибо большое
0
19.05.2014, 21:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2014, 21:53
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru