gymnazium
?>

Миша любит . недавно он узнал о существовании совершенных чисел и пар дружественных чисел (совершенным в называется натуральное число, сумма собственных делителей которого, т.е. натуральных делителей, меньших самого числа, равна этому числу, парой дружественных чисел, называется такая пара натуральных чисел a и b, что сумма собственных делителей a равна b, а сумма собственных делителей b равна a ему захотелось уметь их находить в различных множествах натуральных чисел. более того, миша пошёл дальше и придумал определение дружественной цепочки натуральных чисел: конечную последовательность чисел a1, a2, ak-1, ak он называет дружественной цепочкой, если сумма всех собственных делителей ai равна ai+1 для любого а сумма собственных делителей ak равна a1 (в частности совершенные числа являются дружественной цепочкой длины 1, пары дружественных чисел - дружественными цепочками длины 2). миша хочет уметь находить в различных конечных множествах натуральных чисел дружественные цепочки чисел максимальной длины. ему в этом - напишите соответствующую программу. формат ввода в первой строке записано натуральное число n - количество чисел в множестве (1 ≤ n ≤ 104). во второй строке через пробел записаны сами натуральные числа, образующие интересующее мишу множество. все числа различны (т.е. нет двух одинаковых чисел) и не превосходят 108. формат вывода в первой строке выходного файла необходимо вывести длину наиболее длинной дружественной цепочки, которую можно составить из чисел данного множества. если дружественные цепочки составить невозможно - необходимо вывести число 0. во второй строке необходимо вывести дружественную цепочку данной длины, числа должны быть записаны через пробел, числа должны идти в том порядке, в котором они образуют цепочку, начинаться цепочка может с любого её члена. если ответов несколько, можно вывести любой из них. пример 1 ввод вывод 3 10 15 6 1 6 пример 2 ввод вывод 4 47 300 220 284 2 284 220

Информатика

Ответы

Андрей628

Машенька,слишком легкая задача чтобы писать программу.

Andrei-Shchukin
Задача
Требуется написать программу, вычисляющую значение какой-либо функции у = f(x). Допустим, такой:

у = x – 2, если x > 0,
y = 0, если x = 0,
y = |x|, если x < 0.
Решение
При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.

Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).

В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.

Таким образом, алгоритм вычисления значения функции может быть таким:

Если x > 0, то у = x - 2
Иначе (ниже идет вложенная конструкция)
Если x = 0, то y = 0
Иначе y = |x|.
В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).

Если не трудно отблагодари
morozovalexander90
Задача
Требуется написать программу, вычисляющую значение какой-либо функции у = f(x). Допустим, такой:

у = x – 2, если x > 0,
y = 0, если x = 0,
y = |x|, если x < 0.
Решение
При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.

Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).

В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.

Таким образом, алгоритм вычисления значения функции может быть таким:

Если x > 0, то у = x - 2
Иначе (ниже идет вложенная конструкция)
Если x = 0, то y = 0
Иначе y = |x|.
В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).

Если не трудно отблагодари

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Миша любит . недавно он узнал о существовании совершенных чисел и пар дружественных чисел (совершенным в называется натуральное число, сумма собственных делителей которого, т.е. натуральных делителей, меньших самого числа, равна этому числу, парой дружественных чисел, называется такая пара натуральных чисел a и b, что сумма собственных делителей a равна b, а сумма собственных делителей b равна a ему захотелось уметь их находить в различных множествах натуральных чисел. более того, миша пошёл дальше и придумал определение дружественной цепочки натуральных чисел: конечную последовательность чисел a1, a2, ak-1, ak он называет дружественной цепочкой, если сумма всех собственных делителей ai равна ai+1 для любого а сумма собственных делителей ak равна a1 (в частности совершенные числа являются дружественной цепочкой длины 1, пары дружественных чисел - дружественными цепочками длины 2). миша хочет уметь находить в различных конечных множествах натуральных чисел дружественные цепочки чисел максимальной длины. ему в этом - напишите соответствующую программу. формат ввода в первой строке записано натуральное число n - количество чисел в множестве (1 ≤ n ≤ 104). во второй строке через пробел записаны сами натуральные числа, образующие интересующее мишу множество. все числа различны (т.е. нет двух одинаковых чисел) и не превосходят 108. формат вывода в первой строке выходного файла необходимо вывести длину наиболее длинной дружественной цепочки, которую можно составить из чисел данного множества. если дружественные цепочки составить невозможно - необходимо вывести число 0. во второй строке необходимо вывести дружественную цепочку данной длины, числа должны быть записаны через пробел, числа должны идти в том порядке, в котором они образуют цепочку, начинаться цепочка может с любого её члена. если ответов несколько, можно вывести любой из них. пример 1 ввод вывод 3 10 15 6 1 6 пример 2 ввод вывод 4 47 300 220 284 2 284 220
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Спиридонова
silicon-films3375
elena-ruzadom
Андрей-Викторовна1910
mos197653
rubanvladimir374
verakmves
Yuliya mikhail
best00
kas80
MariyaKhanbalaeva585
Исаченко Тераски1181
Konstantinovna1936
teta63
Барскова1943
▲