SD
Stas Dergachev

С++.Рекурсивная функция проверки числа.

Подскажите как можно сделать проще или по-другому рекурсивную функцию проверки числа простое оно или нет?

int simple(int* m,int n)

{int res(0),i(0);

if (n!=0 && *m%n==0) i++;

if (!n) return res=0;

else res=simple(m,(n-1));

res+=i;

return res;

}

void main()

{setlocale(LC_ALL,"Russian");

char quit;

int n,s(0);

do{

cout <<"Является ли число n простым ? "<
cout << "n = ";cin>>n;

s=simple(&n,n);

if (s>2) cout<<"Число составное"<
else cout<<"Число простое. "<
cout<<"Продолжить (y/n)";

}while(cin>>quit && quit=='y');

}

Татьяна
Татьяна

#include
using namespace std;

bool simple(const int i, int n)
{
n--;
if (n<=1) return true;
if (!(i%n)) return false;
return simple(i, n);
}

void main()

{
setlocale(LC_ALL,"Russian");

char quit;

int n,s(0);

do{

cout <<"Является ли число n простым ? "<
cout << "n = ";cin>>n;

s=simple(n,n);

if (!s) cout<<"Число составное"<
else cout<<"Число простое. "<
cout<<"Продолжить (y/n)";

}while(cin>>quit && quit=='y');

}

Роман
Роман

да по сути все правильно

СИ
Серебряков Илья

для проверки на простоту достаточно проверить, что число N не делится на числа
2,3,...sqrt(N)

причем чаще всего малые простые числа (до 100, например) , хранятся в отдельном массиве и сначала проверяется по ним только (но опять-таки - до sqrt(N)), а затем уже можно на 1 увеличивать делитель

СА
Святослав Астахов

а твой код правда работает? и правильно работает?

Похожие вопросы
Накатал такую страшную рекурсивную функцию на Python, можно ли ее как-то исправить?
Помогите написать программу на Си с использованием рекурсивной функции
Паскаль рекурсивная функция.
вычисление ассимптотической сложности рекурсивной функции
Разработать рекурсивную функцию для вывода на экран след. картинки
Сделайте рекурсивную функцию С++
С++.Рекурсивная функция определения числа.
С++.Рекурсивная функция вычисления n-го числа Фибоначчи. Кто-нибудь может написать такую функцию?
ПОМОГИТЕ ПОЖАЙЛУСТО С ЗАДАЧЕЙ ТЕМА: Рекурсивные процедуры и функции
Какие функции вычисляются алгоритмом? Что такое рекурсивные и базисные функции?