Ответ на сообщение Программист. пользователя tolstopuz
Толстопуз,
1 задача
2-3-4-4-3-2
2 задача
Число открытых ящиков No = N-floor(sqrt(N)), где N- общее число ящиков, floor - округление в меньшую сторону, sqrt - взятие квадратного корня. Тут остановлюсь подробнее. Ящик с любым номером будет открыт, если он не является квадратом какого-то числа. Почему? рассмотрим ящик с номером 6. состояние будет меняться при обработке каждого 2-го, 3-го 6-го. Если он сначала был закрыт, то в итоге будет открыт. 6/2=3, где 2 делитель, 3 частное. На "делитель" ящик открыли, на "частное" закрыли. Но если мы работаем с числом, у которого частное равно делителю, то операция смены состояния происходит четное число раз. Т.о. ящики с номерами, являющимся квадратом другого числа останутся закрытими, остальные будут открытыми. Если N=26, то закрытыми будут 1, 4, 9, 16, 25.
ЗЫ. Суммарное время решения обеих задач 30 минут, задачки интересные, спасибо
1 задача
2-3-4-4-3-2
2 задача
Число открытых ящиков No = N-floor(sqrt(N)), где N- общее число ящиков, floor - округление в меньшую сторону, sqrt - взятие квадратного корня. Тут остановлюсь подробнее. Ящик с любым номером будет открыт, если он не является квадратом какого-то числа. Почему? рассмотрим ящик с номером 6. состояние будет меняться при обработке каждого 2-го, 3-го 6-го. Если он сначала был закрыт, то в итоге будет открыт. 6/2=3, где 2 делитель, 3 частное. На "делитель" ящик открыли, на "частное" закрыли. Но если мы работаем с числом, у которого частное равно делителю, то операция смены состояния происходит четное число раз. Т.о. ящики с номерами, являющимся квадратом другого числа останутся закрытими, остальные будут открытыми. Если N=26, то закрытыми будут 1, 4, 9, 16, 25.
ЗЫ. Суммарное время решения обеих задач 30 минут, задачки интересные, спасибо

Исправлено пользователем udaw (22.02.12 15:35)