0 / 0 / 0
Регистрация: 12.11.2025
Сообщений: 1

Произведение цифр

12.11.2025, 12:11. Показов 681. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решал задачу с ACMP на Паскале. С таким условием
Требуется найти наименьшее натуральное число Q такое, что произведение его цифр равно заданному числу N.

Входные данные
В единственной строке записано одно целое число N (0 ≤ N ≤ 109).

Выходные данные
В выходную строку нужно вывести искомое число Q. В том случае, если такого числа не существует, следует вывести -1.

Вот написал что-то такое:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var i,j,l,m:int64; n,q,s,k:BigInteger; a:array[1..10] of integer;
begin
  q:=-1;
  readln(n);
      if n<10 then
      writeln(n mod 10)
    else
  if (n mod 2 > 0) and (n mod 3 >0) and (n mod 5>0) then
    writeln(q)
  else
    for i:=1 to 1000000000 do
    begin
    j:=1;
    l:=i;
    s:=1;
    k:=i;
    repeat 
      a[j]:=l mod 10;
      l:=l div 10;
      j:=j+1;
    until l mod 10 = 0;
    for m:=1 to j-1 do
      s:=s*a[m];
    if s=n then begin writeln(k); break; end;
    end;
end.


Выдает ошибку на 4 тесте.
Помогите, где я мог заруинить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2025, 12:11
Ответы с готовыми решениями:

В данном одномерном массиве найдите произведение пары различных элементов, произведение последних цифр у которых минимальное
В данном одномерном массиве найдите произведение пары различных элементов, произведение последних...

Дано K трехзначных чисел. Определить, у скольких из них произведение 1ой и 2ой цифр превышает произведение 1ой и 3ей
Вводятся K трехзначных чисел. Определить, у скольких из них произведение первой и второй цифр...

Если число четырёхзначное, то найти сумму его цифр, а если трёхзначное, то произведение цифр числа
С клавиатуры вводится целое число X из промежутка .если число четырёхзначное,то найти сумму его...

2
Модератор
10352 / 5638 / 3395
Регистрация: 17.08.2012
Сообщений: 17,205
12.11.2025, 12:47
Ваша программа НЕ на Pascal ABC.NET.

Вы уверены, что Вам нужно именно на Pascal ABC.NET, а не на Free Pascal Compiler, например?
0
Модератор
10352 / 5638 / 3395
Регистрация: 17.08.2012
Сообщений: 17,205
13.11.2025, 08:08
А, неважно, напишу и на FPC, и на PABC.NET. Ваше решение даже смотреть не стану, написано много и наверняка неверно. Ещё и зачем-то цикл аж до миллиарда... Уже от этого программа по времени выполнения ни в какие ворота не лезет. И что за четвёртый тест такой, я знать не желаю.

С задачей нужно сначала разобраться, поскольку условие задачи содержит один подвох, а именно: неизвестно, может ли произведение состоять из одного сомножителя. Строго говоря - не может, должно быть минимум два сомножителя, иначе какое же это произведение. Однако, чисто формально - может. И в математике, и в программировании. Вот простейший пример, произведение элементов массива:
Pascal
1
## |2|.Product.Print
Выводится "2", но в массиве только один элемент: эта самая двойка. То есть, произведение вычисляется формально. Если бы вычислялось строго, тогда бы имело место сообщение об ошибке, что-то типа "Метод класса .Product может быть выполнен не менее чем для двух чисел". Ну, или как-то так.

Неизвестно, что на этот счёт считал правильным создатель задачи. Поэтому придётся писать два варианта программы, и пробовать, который подойдёт.

Ещё одно: написано, что Q должно быть натуральным. Разбираемся.

"Формальное" умножение: для N=0 достаточно одного сомножителя, то есть, Q=0. Но 0 - не натуральное число. Минимальное натуральное число, произведение цифр которого равно 0, будет Q=10.

"Строгое" умножение: для N, принадлежащего интервалу [0..9], минимальными Q будут соответствующие числа из множества [10..19].

Q не существует только тогда, когда при разложении N на простые множители (при факторизации N) среди множителей есть хотя бы один, больший 9.

Когда Q минимально? За исключением вышеописанных случаев, Q минимально при разложении N на (не простые) множители от 9 до 2, причём сначала выясняется, сколько раз можно поделить N на 9, потом на 8, и так далее, до 2. Цифры числа Q будут всеми этими множителями, отсортированными по возрастанию.

Ну, всё ясно, пишем программы.

Для FPC:
"Формально":
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  n, i: integer;
  d: string;
begin
  readln(n);
  if n > 9 then
    begin
      for i := 9 downto 2 do
        while n mod i = 0 do
          begin
            n := n div i;
            d := char(byte('0') + i) + d
          end;
      if n = 1 then write(d) else write(-1);
      writeln
    end
  else
    if n > 0 then writeln(n) else writeln(10)
end.
"Строго":
заменить строку
Pascal
18
    writeln(1, n)
Для Pascal ABC.NET:
"Формально":
Pascal
1
2
3
4
5
6
7
8
9
10
11
##
  var (d, n) := ('', ReadlnInteger);
  if n > 9 then
    begin
      for var i := 9 downto 2 do
        while n.Divs(i) do 
          (d, n) := (IntToStr(i) + d, n div i);
      if n = 1 then d.Println else (-1).Println
    end
  else 
    if n > 0 then n.Println else (10).Println
"Строго":
заменить строку
Pascal
11
    (10 + n).Println
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2025, 08:08
Помогаю со студенческими работами здесь

Найти такое число, что сумма его цифр превосходит произведение цифр этого же числа на 1
сумма цифр заданного четырехзначного N превосходит произведение цифр этого же числа на 1. ПОМОГИТЕ...

Определить, в котором сумма цифр наибольшая и в каком произведение цифр наименьшее
Дано 5 чисел. Количество цифр в числе варьируется от 3 до 5. Числа вводятся с клавиатуры,...

Определить сумму и произведение цифр, число, образованное перестановкой цифр для двузначного числа
записать программу,которая для произвольного двузначного числа определяет 1) сумму и произведение...

Найти сумму цифр заданного четырёхзначного числа N превосходит произведение цифр этого же числа на 1
Помогите решить срочно, буду очень признателен: 1.сумма цифр заданного четырёхзначного числа N...

Вводится пятизначное число, нужно найти сумму его цифр и произведение цифр
Помогите, пожалуйста!!! Найти ошибку в коде. Очень нужно Вот условие: Вводится пятизначное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru