Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
79 / 25 / 13
Регистрация: 01.06.2019
Сообщений: 573
1

Рекурсивная функция проверяющая является ли число простым

21.08.2019, 19:24. Показов 2881. Ответов 3
Метки нет (Все метки)

Написать рекурсивную функцию, которая принимает натуральное число n>1 и проверяет, является ли оно простым. Программа должна вывести слово YES, если число простое и NO, если число составное.

Помогите,поправить код

C++
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
#include <iostream>
using namespace std;
 
void natural(int n, int k=0)
{
        for (int i = 0; i <= n; i++)
        {
            if (n % i == 0)
                k++;
            if (k > 2 || n == 1)
            {
                cout << "No\n";
                return 0;
            }
        }
        cout << "Yes\n";
        return 0;
}
 
int main()
{
    int q = 0;
    
    cin >> q;
    
    natural(q);
    
    system("pause");
}
1

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2019, 19:24
Ответы с готовыми решениями:

Функция проверяющая является ли число простым
Написать функцию, которая возвращает истину, если переданное число простое, и ложь, если не...

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

Функция: определить, является ли число простым
Помогите пж. Целое число называется простым, если оно делится на 1 и на самого себя. Например,...

Рекурсивная функция проверяющая входит ли заданный элемент Е в строку Х
ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧУ!!!!!!!! Построить функцию предикатного типа ПРИНАДЛЕЖИТ (Е, X),...

3
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,053
21.08.2019, 19:56 2
Лучший ответ Сообщение было отмечено Rudman132 как решение

Решение

Rudman132, привет!
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
bool natural(int n, int k = 2);
 
int main()
{
    int q = 0;
    std::cin >> q;
    std::cout << (natural(q) ? "YES" : "NO") << "\n";
 
    return 0;
}
 
bool natural(int n, int k)
{
    if (n < 2u)
        return false;
    else if (n == k)
        return true;
    else if (n % k)
        return natural(n, k + 1);
    else
        return false;
}
1
812 / 500 / 210
Регистрация: 19.01.2019
Сообщений: 1,196
21.08.2019, 19:59 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    int n;
    std::cin >> n;
    static bool(*isPrime)(uint32_t, uint32_t) = [](uint32_t num, uint32_t divisor)->bool {
        return divisor > num / 2 ? true : (num % divisor == 0 ? false : isPrime(num, divisor + 1));
    };;
    std::cout << std::boolalpha << isPrime(n, 2);
    return 0;
}
1
Модератор
Эксперт С++
11045 / 9111 / 5473
Регистрация: 18.12.2011
Сообщений: 24,369
21.08.2019, 20:00 4
Если сойдет нерекурсивная функция, то можно поправить Вашу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bool natural(int n)
{
        if(n<1)
              return false;
        for (int i = 2; i*i <= n; i++)
        {
            if (n % i == 0)
                 return false;
        }
        return true;
}
int main()
{
    int q = 0;
    cin >> q;
    if(natural(q))
      cout<<"Yes";
    else
      cout<<"No";
    
    system("pause");
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2019, 20:00

Если число является простым, то функция возвращает true, если не является false
Напишите функцию, получающую целое число N(&gt;0). Если оно является простым, то функция возвращает...

Рекурсивная функция, логически проверяющая, что массив упорядочен по возрастанию
Здравствуйте) Помогите, пожалуйста) Написать рекурсивную логическую функцию, которая проверяет что...

Функция: определить, является ли число простым; найти наибольший составной делитель заданного числа
Написать функцию,определяющую,является ли число простым .найти наибольший составной делитель...

Функция: определить, является ли введённое целое число простым
Написать GUI-программу, которая посредством функции определяет, является ли введённое целое число...

Рекурсивная функция для определения является ли натуральное число простым
Напишите рекурсивную функцию для определения является ли натуральное число простым.

Рекурсивная функция, определяющая, является ли заданное натуральное число простым
Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым.


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

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

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