|
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
|
|||||||||||
Разложение на простые множители без рекурсии22.07.2015, 17:33. Показов 3291. Ответов 10
Метки нет (Все метки)
Задача такая : Надо написать две функции get_all_divisorts и get_lowest_divisor. Функция main должна вызывать get_all_divisorts , которая в свою очередь имеет цикл :функция get_all_divisorts повторно вызывает get_lowest_divisor , каждый раз заменяя n результатом выражения n / i , где i это найденный делитель. Если возвращается само число n , значит , число простое и цикл должен быть прекращен
0
|
|||||||||||
| 22.07.2015, 17:33 | |
|
Ответы с готовыми решениями:
10
Разложение на простые множители* Разложение в простые множители Разложение числа на простые множители |
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
|||||||||||
| 22.07.2015, 18:13 | |||||||||||
|
Функция:
А что означает это:
0
|
|||||||||||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
| 22.07.2015, 18:25 | ||||||
1
|
||||||
|
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
|
|||||||||||
| 23.07.2015, 07:51 [ТС] | |||||||||||
|
rikimaru2013, Первоначальный код был таким .и надо его переделать в задании. Спасибо конечно за ответ ,но до arr я еще не дошел в книге .
Задача такая : Надо написать две функции get_all_divisorts и get_lowest_divisor. Функция main должна вызывать get_all_divisorts , которая в свою очередь имеет цикл :функция get_all_divisorts повторно вызывает get_lowest_divisor , каждый раз заменяя n результатом выражения n / i , где i это найденный делитель. Если возвращается само число n , значит , число простое и цикл должен быть прекращен Добавлено через 1 час 8 минут Смотрю на начальный код с рекурсией , где все делается в функции void get_divisors(int n). Ход мысли таков . Вместо рекурсии я должен вызвать новую функцию и передать ей полученную в цикле i. В этой новой функции , которую назвали get_lowest_divisor , я должен сделать действие n / i и if( n/i==0 ) , то вернуть назад это новое значение в функцию void get_divisors(int n) , там оно добавится в список для выведения и все продолжится как в первом коде . Где ошибка в моих рассуждениях , если ошибки нет , то как реализовать это ? Добавлено через 35 минут Просьба спецов проверить ,правильное ли решение ?
0
|
|||||||||||
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
||||||
| 23.07.2015, 19:26 | ||||||
1
|
||||||
|
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
|
|
| 23.07.2015, 20:44 [ТС] | |
|
Krasiosoft, Спасибо большое (конечно лучше бы самому) ,но... Неясен длинный цикл ,пытаюсь разобраться.
0
|
|
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
||||||
| 23.07.2015, 21:01 | ||||||
Сообщение было отмечено sergei60 как решение
Решение
Если вы про:
Инициализация: int divisor=get_lowest_divisor( number ), т.е. берем первый делитель от оригинального числа Условие: divisor, т.е. пока divisor не равен 0 Изменения значений на следующем шаге: divisor=get_lowest_divisor( number/=divisor ), т.е. делим число на делитель и передаем результат этого в get_lowest_divisor
1
|
||||||
|
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
|
||||||
| 24.07.2015, 17:30 [ТС] | ||||||
|
Krasiosoft, Впервоначальном коде у меня есть строчка double sqrt_of_n=sqrt((double)n); то есть в цикле я нахожу простое число из корня ,для этого используется математическая функция sqrt и в цикле for( i=2; i<=sqrt_of_n ;i++). Пытаясь подставить корень в окончательный код ,программа перестает правильно работать . Она обрабатывает не все значения. Что я делаю не так ? Вот причесанный окончательный код.
0
|
||||||
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
||||||
| 24.07.2015, 18:26 | ||||||
|
Тогда будет так:
1
|
||||||
|
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
|
|
| 24.07.2015, 19:15 [ТС] | |
|
Krasiosoft, а можно краткий ход вашей мысли. зачем изменения в цикле ф-ции get_all_divisors ?
0
|
|
|
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
|
|
| 24.07.2015, 19:24 | |
|
Теперь функция get_lowest_divisor, если не смогла найти делитель, то она просто возвращает число, которое было передано в функцию. Т.е. если делителя нету, то делителем есть само это число.
А цикл в функции get_all_divisors теперь должен выходить по условию, если get_lowest_divisor вернет 1, т.к. единицу дальше некуда уже делить.
1
|
|
| 24.07.2015, 19:24 | |
|
Помогаю со студенческими работами здесь
11
Разложение числа на простые множители (упрощенная). Зацикливание?
Разложение на простые множители заданного натурального числа Описать функцию, находящую разложение заданного натурального числа на простые множители Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|