В операционной системе Winux многозадачность реализована следующим образом: каждую секунду задача, которая была активна (то есть находилась в начале списка задач), ставится в конец списка задач, а все остальные задачи сдвигаются на одну к началу.
В одной очень секретной лаборатории компьютер под управлением Winux используется для решения вычислительных задач. Вычислениями занимается задача solve. С утра список состоял из
N
задач, причём задача solve существовала в нескольких экземплярах, каким-то образом распределённых по списку. Вечером в списке по-прежнему было
N
задач; более того, все экземпляры задачи solve были ровно на тех же местах в списке, что и с утра, но при этом список задач в целом различался (то есть на какой-то позиции с утра и вечером стояли разные задачи). При этом за день ни одна задача не должна была завершиться и ни одна новая задача не должна была быть запущена.
Вы — разработчик модуля защиты информации в системе Winux. Ваша задача — по заданному
N
определить, обязательно ли из полученной информации следует, что как минимум одна задача завершилась и как минимум одна задача была запущена, или же ситуация могла произойти естественным образом.
Так как лаборатория секретная, никакой другой информации, кроме числа задач, у Вас нет
Ответы на вопрос
Ответил ao02industry
0
Само объяснение очень большое. Делится им смысла не вижу. В целом все сводится к проверке числа на простоту. Причем надо это сделать с помощью быстрого алгоритма.
Следующее решение приведено на языке Python 3.4.3:
def is_prime( num ):
d = 2
while d * d <= num and num % d != 0:
d += 1
return d * d > num
N = int( input() )
if is_prime( N ):
print( 'Danger' )
else:
print( 'Safe' )
Новые вопросы
Қазақ тiлi,
1 год назад
Українська література,
1 год назад
Алгебра,
1 год назад
Алгебра,
7 лет назад
Алгебра,
7 лет назад