• Предмет: Информатика
  • Автор: Евгений22805
  • Вопрос задан 2 года назад

Даю 23 балла за быстрый ответ !

В операционной системе Winux многозадачность реализована следующим образом: каждую секунду задача, которая была активна (то есть находилась в начале списка задач), ставится в конец списка задач, а все остальные задачи сдвигаются на одну к началу. В одной очень секретной лаборатории компьютер под управлением Winux используется для решения вычислительных задач. Вычислениями занимается задача solve. С утра список состоял из N задач, причём задача solve существовала в нескольких экземплярах, каким-то образом распределённых по списку. Вечером в списке по-прежнему было N задач; более того, все экземпляры задачи solve были ровно на тех же местах в списке, что и с утра, но при этом список задач в целом различался (то есть на какой-то позиции с утра и вечером стояли разные задачи). При этом за день ни одна задача не должна была завершиться и ни одна новая задача не должна была быть запущена. Вы — разработчик модуля защиты информации в системе Winux. Ваша задача — по заданному N определить, обязательно ли из полученной информации следует, что как минимум одна задача завершилась и как минимум одна задача была запущена, или же ситуация могла произойти естественным образом. Так как лаборатория секретная, никакой другой информации, кроме числа задач, у Вас нет.

Ответы

Ответ дал: ao02industry
1

Само объяснение очень большое. Делится им смысла не вижу. В целом все сводится к проверке числа на простоту. Причем надо это сделать с помощью быстрого алгоритма.

Следующее решение приведено на языке Python 3.4.3:

# is_prime() - функция проверки числа на простоту.

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' )

Вас заинтересует