Можно ли представить факториал числа "n" в виде произведения трёх последовательных целых чисел? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста... Нужно решить через

операторы цикла

Дано натуральное число n . Выяснить, можно ли представить n!=1*2*3*...*n в виде произведения трёх последовательных целых чисел. Желательно с разъяснениями. Заранее благодарен. Байт мне уже помогал, спасибо ему, но реально, я там ничего не понял(

Решение задачи: «Можно ли представить факториал числа "n" в виде произведения трёх последовательных целых чисел?»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. typedef unsigned long long number_t;
  4. #define NUM_PRESENT "%llu"
  5.  
  6. number_t fact(number_t n) {
  7.     return ( n > 1 ) ? n * fact(n - 1) : 1;
  8. }
  9.  
  10. int main(void) {
  11.     number_t n, a, b, c;
  12.    
  13.     while ( printf("Number: ") && scanf(NUM_PRESENT, &n) == 1 ) {
  14.         n = fact(n);
  15.         printf("Factorial: " NUM_PRESENT "\n", n);
  16.         for ( a = 1, b = 2, c = 3; a * b * c < n; ++a, ++b, ++c )
  17.             ;
  18.         if ( a * b * c > n )
  19.             printf("No way!\n");
  20.         else
  21.             printf(NUM_PRESENT " X " NUM_PRESENT " X " NUM_PRESENT "\n", a, b, c);
  22.     }
  23.    
  24.     return 0;
  25. }

Объяснение кода листинга программы

В этом коде:

  1. Факториал числа n вычисляется с помощью рекурсивной функции fact.
  2. В функции main пользователю предлагается ввести число n.
  3. Если число n больше 1, то вычисляется его факториал с помощью функции fact.
  4. Затем в цикле перебираются три последовательных целых числа начиная с 1, 2 и 3 до тех пор, пока их произведение не станет равным или больше факториала n.
  5. Если произведение трех последовательных целых чисел становится больше факториала n, то выводится сообщение No way!.
  6. В противном случае выводится сообщение с тремя последовательными целыми числами, чье произведение равно факториалу n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы