Написать функцию, которая получает целое число и возвращает 1 если число простое и 0 если составное - C (СИ)
Формулировка задачи:
Помогите пожалуйста решить. Написать функцию, которая получает целое число и возвращает 1 если число простое и 0 если составное.
Решение задачи: «Написать функцию, которая получает целое число и возвращает 1 если число простое и 0 если составное»
textual
Листинг программы
#include <stdio.h> #include <math.h> _Bool ifPrime(int *number) { for (int i = 2; i <= sqrt(*number); ++i) if (*number % 2 == 0) return 0; return 1; } void main(void) { int number; scanf("%d", &number); printf("%d", ifPrime(&number)); }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h и math.h
- Создание функции с именем ifPrime, которая принимает целочисленный аргумент number и возвращает тип данных _Bool (1 или 0)
- В функции используется цикл for, который начинается с 2 и выполняется до числа, квадратный корень из которого не превышает значение переменной number
- Внутри цикла проверяется, делится ли number на 2 без остатка. Если да, то функция возвращает 0, иначе продолжается выполнение цикла
- Если цикл завершается без возврата функции, то возвращается 1
- В функции main создается переменная типа int с именем number, в которую считывается целочисленное значение с помощью функции scanf
- С помощью функции printf выводится результат работы функции ifPrime, которой передается адрес переменной number в качестве аргумента
- В данной реализации кода функция ifPrime проверяет только делители от 2 до квадратного корня из number. Если number — составное число, то оно имеет делители, большие его корня. Поэтому, если функция ifPrime возвращает 1, то это означает, что число простое. Если функция ifPrime возвращает 0, то это означает, что число составное.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д