дружественные числа |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
дружественные числа |
Rom1k |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
два натуральных числа называют дружественными,если каждое из них равно сумме всех делителей другого, кроме самого этого числа.
найти все пары дружественных чисел,лежащих в диапазоне от 200 до 300 помогите пожалуйста.даже догадок нет( |
volvo |
Сообщение
#2
|
Гость |
Все пары - это очень громко сказано... В заданном диапазоне всего одна пара таких чисел: 220 и 284...
На таком маленьком интервале проще будет перебрать все числа, и найти дружественные... В чем затруднения? Не знаешь, как считать сумму делителей числа? |
мисс_граффити |
Сообщение
#3
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Rom1k |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
uses crt; ну вот,беру этот код. ищу от 200 до 300, а как именно найти эти пары дружественных чисел? |
Rom1k |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
кто-нибудь может подсказать?
|
volvo |
Сообщение
#6
|
Гость |
Если на "сделать чтоб работало" - то вот так:
uses crt;, но это очень неэффективное решение, скажем, даже не пытайся найти все "дружественные пары" в интервале 1 .. 100000 таким вот кодом, результатов будешь ждать очень долго... Существует гораздо более быстрый метод... |
Rom1k |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
|
AlexZerg |
Сообщение
#8
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Вот достаточно оптимальный алгоритм полного перебора:
Однако и его можно улучшить, отбрасывая для конкретных чисел из диапазона перебора ненужные (например: если число 1001 не делится на 3, то нет смысла проверять делимость числа 1001 и на другие числа, делящиеся на 3), и, грамотно подойдя к вопросу, можно добиться ускорения до 50%. Лично мне удалось значительно улучшить алгоритм в итоге (в 5,5 раз). Ибо вычисление суммы делителей я стал производить несколько иначе (отчасти как у Декарта и Ферма) - кому интересно - оставляйте заявки - покажу, но текст боольшой ) Сообщение отредактировано: AlexZerg - |
volvo |
Сообщение
#9
|
Гость |
1) ну и чем твое решение лучше приведенных выше?
2) Турбо-Паскаль, стандартные установки, ничего не меняешь - твоя программа НЕ компилируется. Цитата кому интересно - оставляйте заявки - покажу С учетом вышесказанного - уже неинтересно.Цитата Лично мне удалось значительно улучшить алгоритм в итоге (в 5,5 раз) Угу. Только ты сначала выложил явно специально замедленный алгоритм, а потом будешь его ускорять, да? Смотри:var counter: longint; { <--- делаем раз }И запускаем. Что видим? 45 iteration(s)... Хорошо... А теперь: if j mod 2 = 0 then x:=drug(j) else x := drug1(j); { <--- делаем шесть }, и запускаем снова: 23 iteration(s). Интересно, правда? А ведь каждая итерация - это вычисление функций... А ты даже это не соизволил проверить... |
shemetec23 |
Сообщение
#10
|
Гость |
var Сообщение отредактировано: Bajiaoxing - |
Текстовая версия | 1.06.2024 11:16 |