Разложение нескольких чисел на простые, На входе дано несколько чисел. Каждое число разложите на простые. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Разложение нескольких чисел на простые, На входе дано несколько чисел. Каждое число разложите на простые. |
Kolyancz |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: 0 |
На входе дано несколько чисел. Каждое число разложите на простые.
Каждое разложение должно быть записано в отдельной строчке. Если число состоит из нескольких простых, то простые должны быть разделены пробелом. Все числа положительные и меньше 2^31. Пример: 6 15 23 128 Выдача: 2 3 3 5 23 2 2 2 2 2 2 2 |
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Хорошо. А вопрос-то какой?..
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
samec |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Реальное имя: Юра Репутация: 1 |
вот тут Разложение чисел на простые множители что то подобное уже решалось.
|
Kolyancz |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: 0 |
Вопрос в написать программу.
Я воспользовался уже имеющимися решениями. Вот что полоучилось:
Эта прога решает приведенный выше пример, но есть баги: например если первое число 9, а второе 15, то ответ - разложение первого и второго числа она выводит на одной строчке, а должна на разних. Не могу решить, самого важного: кол-во чисел неопределено и разложение должно работать для чисел до 2 в 31-ой. |
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Н-да.. Впервые вижу ТАКОЙ нечесаный код... Даже арифметические операторы гуляют по строчкам безо всякой нужды..
Короче, вот, поработал над твоим текстом. Ошибки исправил и много чего еще. Но там все равно еще далеко до зачетного варианта . Разбирайся: procedure Factorization(x: word); Что касается нефиксированного числа вводимых параметров, то самый простой выход такой: repeat Но он перемежает вводимые числа и результаты. Если это тебя смущает - надо запоминать входные данные в массив: читать ввод в цикле до ввода нуля, считая количество введенных чисел, а потом все в цикле же и обработать. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
Сообщение
#6
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Еще одна проблема - с диапазоном чисел. У тебя вообще тип word, что ограничивает все числом 65535. Замени его на LongInt.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 28.03.2024 22:50 |