Напишите функцию, которая определяет, является ли заданное натуральное число точным квадратом - C (СИ)
Формулировка задачи:
Напишите функцию, которая определяет, является ли заданное натуральное число точным квадратом. Заголовок функции должен быть следующим: bool isSimpleSquare(int n); Напишите программу, которая получает от пользователя два натуральных числа a и b и выводит на экран все числа в интервале от а до b, которые являются точными квадратами (с помощью созданной Вами функции).
Решение задачи: «Напишите функцию, которая определяет, является ли заданное натуральное число точным квадратом»
textual
Листинг программы
#include <math.h>
#include <stdio.h>
bool isSimpleSquare(int n) {
int del;
bool flag = false;
for (del = 1; del < (int) sqrt((float) n) + 1; ++del)
if (del * del == n)
flag = true;
return flag;
}
int main() {
int a, b, i;
printf("Vvedite a, b: ");
scanf("%d%d", &a, &b);
for (i = a; i <= b; ++i)
if (isSimpleSquare(i))
printf("%d tochnyi kvadrat\n", i);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: math.h и printf.h
- Определение функции isSimpleSquare(int n), которая принимает целочисленный аргумент n и возвращает логическое значение true, если число является точным квадратом, иначе - false. Внутри функции объявлены следующие переменные: del - счётчик для цикла, flag - флаг проверки.
- В цикле for перебираются все делители от 1 до корня из числа n (с шагом 1).
- Проверяется условие del*del==n. Если делитель является точным квадратом числа n, то флаг flag=true.
- В конце функции возвращается значение флага.
- В функции main() объявлены переменные a, b, i.
- Пользователю предлагается ввести значения a и b с помощью функции scanf().
- В цикле for перебираются все числа от a до b (с шагом 1).
- Для каждого числа вызывается функция isSimpleSquare(), результат проверки выводится на экран с помощью функции printf().
- В конце функции main() возвращается 0, что означает успешный конец работы программы.