Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа - C (СИ)
Формулировка задачи:
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа. Если таких чисел нет, то вывести слово «нет». Пример. N = 32. Числа: 6, 16, 23. в Си
Решение задачи: «Найти и вывести все числа в интервале от 1 до N–1, у которых произведение всех цифр совпадает с произведением цифр данного числа»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <locale.h> bool true_or_false(int a, int prz); int main(){ setlocale(LC_ALL, "rus"); int n; int i; int prz = 1; int a; printf("Введите N: "); scanf("%d", &n); a = n; while(n > 0){ prz = prz * (n%10); n = n/10; } for(i = 1; i < a; i++){ if(true_or_false(i, prz)) printf("%d ", i); } return 0; } bool true_or_false(int a, int prz){ int przA = 1; przA = a%10; a = a/10; while(a > 0){ przA = przA * (a%10); a = a/10; } if(przA == prz) return true; else return false; }
Объяснение кода листинга программы
В этом коде:
- Мы включаем необходимые библиотеки и устанавливаем русскую локаль.
- Затем определяем функцию
true_or_false
, которая проверяет, совпадает ли произведение цифр числа с заданным числомprz
. - В функции
main
мы считываем числоn
и инициализируем переменныеa
иprz
значениемn
. - Далее мы вычисляем
prz
, перемножая цифры числаn
в обратном порядке. - Затем мы вычисляем все числа в диапазоне от 1 до
n-1
и проверяем, совпадает ли произведение их цифр сprz
с помощью функцииtrue_or_false
. - Если число удовлетворяет условию, мы выводим его.
- В конце функции
main
возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д