6 / 5 / 4
Регистрация: 14.01.2017
Сообщений: 294
|
|
1 | |
В заданном диапазоне найти все пары натуральных дружественных чисел, удовлетворяющих условию26.01.2017, 20:13. Показов 10926. Ответов 9
Метки нет Все метки)
(
Два натуральных числа называются дружественными, если каждое из них равно сумме всех натуральных делителей другого (само число при этом не рассматривается в качестве собственного делителя). Необходимо найти все пары натуральных дружественных чисел (не равных друг другу), оба числа в которых меньше вводимого с клавиатуры числа N.
Формат входных данных Вводится одно целое число N (1≤N≤10000). Формат выходных данных Требуется вывести все пары дружественных чисел, удовлетворяющие условию задачи. Пары можно выводить в любом порядке.
0
|
|
26.01.2017, 20:13 | |
Ответы с готовыми решениями:
9
Найти все пары дружественных чисел в диапазоне [n1, n2]
Найти все пары дружественных чисел в диапазоне от 200 до 300 |
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
|
||||||
26.01.2017, 22:43 | 2 | |||||
ARTER616, здравствуйте! Я решил данную задачу, но программа очень медленно считает...Вот код:
0
|
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
|
|
27.01.2017, 02:40 | 3 |
Fixer_84, медленно оно считает, потому, что Вы перебираете все числа без каких-либо ограничений.
А ограничений много. Например, если одно оба числа простые, то они явно не пара. ![]() (и делители искать незачем). ...а может достаточно и одному числу быть простым.
0
|
6 / 5 / 4
Регистрация: 14.01.2017
Сообщений: 294
|
|
27.01.2017, 16:11 [ТС] | 4 |
А можете указать в какие конкретно строки нужно исправить?
0
|
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
|
|
27.01.2017, 19:45 | 5 |
SerVal, спасибо за вашу подсказку! ARTER616, вот нашел более оптимальное решение. Но при сдаче один тест по времени все равно завален
![]() Напечатать все пары дружественных чисел Добавлено через 3 минуты ARTER616, P.S. Считает очень быстро ![]() Добавлено через 24 минуты ARTER616, http://math4school.ru/ohota_na... hisla.html ![]()
0
|
6 / 5 / 4
Регистрация: 14.01.2017
Сообщений: 294
|
|
27.01.2017, 20:05 [ТС] | 6 |
А какой ответ там правильный? У меня почему-то ошибку выдает
![]()
0
|
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
|
|||||||||||
27.01.2017, 20:25 | 7 | ||||||||||
ARTER616, там просто задается интервал от M до N. Замените M на 1 и вводите только N, Вот код:
ARTER616, вообщем, будет так:
ARTER616, Даже для N = 1000000 быстро находит.
2
|
6 / 5 / 4
Регистрация: 14.01.2017
Сообщений: 294
|
|
27.01.2017, 20:35 [ТС] | 8 |
Спасибо!!!
![]() Добавлено через 8 минут А можно сделать еще чтобы выводило ответ и этот же ответ в обратном порядке? Например(220 284; 284 220) ------------------- И еще при вводе 284 выдает неправильный ответ(такой же как при вводе 300, а должно вывести "Нет дружественных чисел")
0
|
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
|
||||||
27.01.2017, 20:59 | 9 | |||||
![]() Решение
ARTER616, при вводе 284 я исправил (в 30 строчке поменял A[i] <= N на A[i] < N). Но при вводе 300 должно выдавать 220 284, так как оба числа < 300 (так сказано в условии задачи). Вот исправленный код:
1
|
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
|
|||||||||||
28.01.2017, 13:42 | 10 | ||||||||||
Тогда надо не сразу выводить на экран, а запихивать найденные пары в вектор.
Ну, а уж потом выводить как душа пожелает. Хоть с начала до конца, хоть наоборот. ![]() ***** Проверил программку от ARTER616. Вроде бы всё верно находит: Кликните здесь для просмотра всего текста
На старом Intel Quad Q9650 3.0 GHz ![]() Добавлено через 14 минут Эх, Fixer_84, из хорошей программы сделали какой-то огрызок, который может считать только "от печки" - только от нуля. ![]() *как сейчас в Инете - полно программ поиска простых чисел, которые могут считать их полько от 0 до N. Такое надо? Интересно ж что-то "в диапазоне от и до". Добавлено через 15 часов 6 минут Народ, у кого какие результаты? Выкладывайте посмотрим. ![]() Вот у меня на Intel Quad Q9650 3 Гигагерца
0
|
28.01.2017, 13:42 | |
Помогаю со студенческими работами здесь
10
Найти все пары дружественных чисел в заданном диапазоне Найти все пары дружественных чисел, лежащих в заданном диапазоне
Найти все пары натуральных дружественных чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |