0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 47
1

Составить программу определения является ли введенное число простым

11.11.2009, 22:17. Показов 17497. Ответов 9
Метки нет (Все метки)

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

Написать программу, которая проверяет, является ли целое число, введенное пользователем, простым
Всем привет. Не могу решить эти задания. Можете помочь?Я то я пропустил темы,теперь плохо понимаю....

Составить программу для определения, является ли введенное предложение палиндромом
Составить программу для определения: является ли введенное предложение палиндромом. Пример...

Является целое число, введенное пользователем простым.
Написать программу, которая проверяет, является целое число, введенное пользователем простым.(через...

Является ли введенное пользователем натуральное число простым
Напишите программу,определяющую,является ли введенное пользователем натуральное число простым. В...

9
60 / 60 / 9
Регистрация: 09.11.2009
Сообщений: 198
11.11.2009, 22:43 2
попробуйте написать решение, используя цикл
потом - покажу, как это переделать в рекурсию
0
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 47
12.11.2009, 00:20  [ТС] 3
пж напиши решение =(
0
Почетный модератор
64305 / 47600 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2009, 09:44 4
Можно например так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
{основная функция}
function Prost(n:longint):boolean;
{вспомогательная, определяет есть ли делители у числа кроме самого и 1}
function Kratn(a,b:longint):boolean;
begin
if b<=1 then exit;{1 и 0 не считаем, это условие выхода из рекурсии}
Kratn:=(a mod b <>0)and Kratn(a,b-1);
{если не делится на данное и меньше его на 1 число, смотрим следующее}
end;
begin
Prost:=Kratn(n,n-1);{если нет делителей-простое}
end;
var m:longint;
begin
clrscr;
write('M=');
readln(m);
if Prost(m) then write('Prostoe!')
else write('No!');
readln
end.
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 47
12.11.2009, 20:02  [ТС] 5
спс!!!
0
0 / 0 / 0
Регистрация: 26.12.2009
Сообщений: 4
26.12.2009, 13:48 6
Данная программа считает числа простыми только до 7. Все что дальше - непростые числа

И лучше exit; не юзать.

Pascal
1
2
3
4
5
6
7
8
9
10
function Prost(n:longint):boolean;
{вспомогательная, определяет есть ли делители у числа кроме самого и 1}
function Kratn(a,b:longint):boolean;
begin
Kratn:=(a mod b <>0)and Kratn(a,b-1);
{если не делится на данное и меньше его на 1 число, смотрим следующее}
end;
begin
if n>1 then Prost:=Kratn(n,n-1);{если нет делителей-простое}
end;
Добавлено через 36 минут
Поправка:

Pascal
1
2
3
4
5
6
7
8
9
10
11
function Prost(n:longint):boolean;
{вспомогательная, определяет есть ли делители у числа кроме самого и 1}
function Kratn(a,b:longint):boolean;
begin
if b>1 then 
Kratn:=(a mod b <>0)and Kratn(a,b-1);
{если не делится на данное и меньше его на 1 число, смотрим следующее}
end;
begin
Prost:=Kratn(n,n-1);{если нет делителей-простое}
end;
0
0 / 0 / 0
Регистрация: 10.10.2010
Сообщений: 7
11.10.2010, 23:06 7
Программа ввыодит все простые числа до заданного числа N

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program n2l;
var a,b,c,n:longint;
 
begin
writeln('vvedite n');
readln(n);
 
for a:=1 to n-1 do
  begin
   c:=0;
   for b:=1 to a do  if a mod b=0 then c:=c+1;
    if c=2 then write ('  ',b);
  end;
 
readln;
end.
0
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
11.10.2010, 23:31 8
Цитата Сообщение от devnull Посмотреть сообщение
И лучше exit; не юзать.
В самом по себе использовании exit; криминала нет, если делать это грамотно. Оно опасно тем, что неграмотные программисты часто забывают сделать необходимые по выходу действия, особенно при дальнейшей модификации функции.

Ну, собственно, далеко ходить не надо:
Цитата Сообщение от Puporev Посмотреть сообщение
Pascal
1
2
3
4
5
function Kratn(a,b:longint):boolean; 
begin 
if b<=1 then exit;{1 и 0 не считаем, это условие выхода из рекурсии} 
Kratn:=(a mod b <>0) and Kratn(a,b-1);{если не делится на данное и меньше его на 1 число, смотрим   следующее} 
end;
В данном опусе имеет место грубая пионерская ошибка: не происходит обязательного присвоения значения результату функции по всем возможным ветвям развития событий, поэтому ее результат может быть неопределен. Хотя в используемом конкретном компиляторе возможно, что функция без назначения результата возвращает boolean(0), но закладываться на это нельзя, также как и на значение параметра цикла for после выхода из него.
0
0 / 0 / 0
Регистрация: 10.10.2010
Сообщений: 7
12.10.2010, 17:42 9
Еще один вариант программы, которая выводит все простые числа до заданного числа N, но без цикла FOR в теле программы.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program prost_un;
var a,b,c,n:longint;
 
begin
writeln('vvedite n');
readln(n);
a:=0;
 repeat
 a:=a+1;
 c:=0;
 b:=0;
    repeat
     b:=b+1;
     if a mod b=0 then c:=c+1;
     until b=a;
    if c=2 then write ('  ',b);
  until a = n-1;
 
readln;
end.
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 2
03.03.2016, 09:13 10
Pascal
1
2
3
4
5
6
7
8
9
program ggg;
var i,n:integer;
begin
readln (n);
repeat i:=i+1;
until n mod i=0; if n=i 
then write ('vern=')
else write ('ne vern=');
end.
0
03.03.2016, 09:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2016, 09:13
Помогаю со студенческими работами здесь

Является целое число, введенное пользователем простым.
Помогите решить,плиз!!!(((( 1.Написать программу, которая проверяет, является целое число,...

Проверить, является ли введенное целое положительное число простым
Проверить, является ли введенное целое положительное число простым. Простым называется число,...

Оператор repeat. Является ли целое число, введенное пользователем, простым
1) Составить программу используя оператор REPEAT.Написать программу , которая проверяет является ли...

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


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

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

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