Конкурс Intel® Threading Challenge - Распараллель свой путь к призам

Опубликовано: 3 октября 2007 г. | Последние Изменения: 2 июля 2008 г.

 

 

Распараллель свой путь к призам!


Большинство программистов любит алгоритмические головоломки. Мы предлагаем вам еще раз вернуться к классическим алгоритмам и вновь подумать об их эффективных и элегантных реализациях, теперь - используя многопоточные технологии.


Команда Intel® Software Network представляет конкурс Intel® Threading Challenge.


Каждый месяц в течение года мы предлагаем вам решить одно из конкурсных заданий. Наше жюри оценивает решения и начисляет баллы в соответствии с официальными правилами конкурса. При оценке принимается во внимание производительность решения, изящность реализации, использование современных инструментов и участие автора в жизни сообщества Intel® Software Network. Участник, набравший наибольшее количество баллов, становится победителем очередного этапа. В октябре 2008 года по сумме балов в 12 этапах определяется победитель конкурса, который получит главный приз!

 

Специальные призы этого лета: в течение летнего периода (июнь, июль и август) мы разыграем дополнительные призы для участников, набравших максимальное количество очков по итогам трех месяцев.


В конкурсе Intel® Threading Challenge принимают участие программисты всего мира, поэтому основной язык конкурса - английский. Чтобы поддержать русскоязычных участников, российская часть команды Intel® Software Network решила продублировать основные страницы конкурса на родном языке. Мы будем болеть за вас и постараемся найти ответы на все ваши вопросы о конкурсе на русскоязычном форуме!


Еще раз обращаем ваше внимание: конкурс является глобальным и для участия в нем вам необходимо зарегистрироваться, отправлять решения и отслеживать баллы на основном, англоязычном, сайте конкурса.


Итак, задания конкурса:


Зеленый – группа заданий, предлагаемая участникам в текущем месяце 
Желтый – группа заданий, которая будет предложена участникам позднее 
Сероголубой – решённые группы заданий, закрытые для конкурса


 

Пара целых чисел считается "дружественной" (AMICABLE), если сумма собственных делителей одного числа равна сумме делителей второго числа и наоборот.

 

Пример: 220, 284 220=2^2*5*11 (1+2+4+5+10+11+20+22+44+55+110 = 284) 284=2^2*71 (1+2+4+71+142 = 220)

 

Возьмем отношение суммы делителей натурального числа к самому числу, R(n). Если у двух натуральных чисел имеются равные отношения, такие числа называются «дружескими» (FRIENDLY).

Пример: 30, 140 R(30) = (1+2+3+5+6+10+15+30)/30 = 12/5 R(140) = (1+2+4+5+7+10+14+20+28+35+70+140)/140 = 12/5

 

Задача: Напишите многопоточное приложение для нахождения и вывода на печать каждой пары дружественных чисел и каждой пары дружеских чисел, находящихся в заданном диапазоне. Диапазон – два положительных целых числа – вводится в приложение перед началом выполнения номинально в виде аргументов командной строки.


Пример выполнения:

> amicable.exe 200 600

220 и 284 дружественные (AMICABLE)
240 и 600 дружеские (FRIENDLY)

Ограничения: В исходные файлы или вспомогательные файлы, используемые приложением, нельзя включать непосредственные данные или информацию. Например, нельзя использовать таблицы простых чисел или списков дружественных или дружеских чисел. Вся информация такого рода должна быть сгенерирована приложением в процессе выполнения.

 

Время на решение: При судействе будет учитываться реальное время (включая ввод и вывод).

 

Карта конкурса

Главная страница Состав жюри
Призы Мои баллы
Правила Мой профиль
Средства и файлы для загрузки Мои записи

 

Post a comment If you have any questions, please contact our support team.