Выяснить, можно ли представить n в виде произведения трех последовательных натуральных чисел - C (СИ) (70930)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
int Check(int n)
{
int i;
for (i = 1; i<n; i++) if (i*(i + 1)*(i + 2) == n) return i;
return 0;
}
int main(int argc, char *argv[])
{
int k, n;
printf("Enter number: ");
scanf_s("%d", &n);
k = Check(n);
if (k>0)
printf("%d = %d*%d*%d\n", n, k, k + 1, k + 2);
else
printf("No\n");
system("PAUSE");
return 0;
}Решение задачи: «Выяснить, можно ли представить n в виде произведения трех последовательных натуральных чисел»
textual
Листинг программы
#include <stdio.h> // подключаем библиотеку
#include <stdlib.h> // подключаем библиотеку
int Check(int n)
{
int i; // переменная i типа int
for (i = 1; i<n; i++) // начинаем цикл с i=1 до n, c +1 шагом i
if (i*(i + 1)*(i + 2) == n) // если обчисление равно n тогда возвращаем i функции
return i;
return 0;
}
int main(int argc, char *argv[])
{
int k, n; // переменные k,n типа int
printf("Enter number: "); // выводим текст на экран
scanf_s("%d", &n); // вводим с клавиатуры переменную n;
k = Check(n); // переменной k присваимваем результат функции Check(n)
if (k>0) // если переменная k больше 0 тогда...
printf("%d = %d*%d*%d\n", n, k, k + 1, k + 2); // выводим результат
else //если нет, то...
printf("No\n"); // выводим текст на экран
system("PAUSE"); //Задержка экрана консоли
return 0;
}
Объяснение кода листинга программы
- Подключаем необходимые библиотеки
- Объявляем функцию Check(int n) для проверки числа n на представимость в виде произведения трех последовательных натуральных чисел
- В функции main() объявляем переменные k,n типа int
- Выводим на экран приглашение для ввода числа
- Считываем с клавиатуры число n в переменную n
- Вызываем функцию Check(n) и присваиваем ее результат переменной k
- Проверяем, больше ли k нуля
- Если да, то выводим на экран число n и три последовательных натуральных числа, являющихся его представлением
- Если нет, то выводим на экран сообщение
No - Задерживаем экран консоли
- Возвращаем 0