Рекурсия: определить, является ли заданное число простым - C (СИ)
Формулировка задачи:
Надо написать рекурсивную функцию определения, является ли заданное число простым
Решение задачи: «Рекурсия: определить, является ли заданное число простым»
textual
Листинг программы
#include <stdio.h>
bool prime(int num, int del)
{
if(del > num/2)
return true;
return num%del ? prime(num,++del) : false;
}
int main()
{
int num;
printf("enter your number: ");
scanf("%i",&num);
if (prime(num,2))
printf("your number is prime\n");
else
printf("you number is'nt prime\n");
return 0;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Функция prime(int num, int del) - определяет, является ли число простым.
- Если делитель больше числа, то число простое и функция возвращает true.
- Если число делится на делитель без остатка, то функция вызывает саму себя, увеличивая делитель на единицу, и возвращает результат.
- Если функция не вернула значение, то число простое и функция возвращает false.
- Функция main() - считывает число с помощью функции scanf и передает его в функцию prime.
- Выводит сообщение о том, является ли число простым.