Skip to main content

Qcm Prologin 2008 - Les prisonniers

  • Impossible de trouver le problème demandé
  • Impossible de trouver le problème demandé

DIFFICULTE

LIMITE DE MEMOIRE

1000 ko

LIMITE DE TEMPS

1000 ms

Énoncé

Dans une mise en scène imaginaire, réalisée pour les seuls besoins de l'exercice, les N gardes du couloir de N cellules d'une prison dans lesquelles sont enfermés N prisonniers se livrent à un jeu étrange avant de partir le soir. Chacun, tour à tour, va changer l'état des portes de certaines cellules : s'il trouve une porte ouverte, il la ferme, et réciproquement s'il trouve une porte fermée, il l'ouvre. Le premier garde change l'état de toutes les portes, le deuxième change l'état d'une porte sur deux (c'est-à-dire des portes 2, 4, 6, 8...), le troisième une porte sur trois (3, 6, 9...). Ce processus se répète jusqu'au dernier garde. Écrivez une fonction qui prend en argument le nombre de gardes (et donc de cellules et de prisonniers) N et un numéro de prisonnier P, et qui renvoie 1 s'il pourra s'échapper le lendemain, 0 sinon.

Contraintes

1 <= N <= 1000000000 où N est le nombre de gardes (qui est égal au nombre de prisonniers).

Entrée

Deux entiers, séparés par un espace :

  • N, le nombre de gardes (qui est égal au nombre de prisonniers)
  • P, le numéro du prisonner considéré. 1 <= P <= N

Sortie

Un entier :

  • 0 si le prisonnier reste enfermé
  • 1 si le prisonnier peut sortir

EXEMPLE(S) D'ENTREE/SORTIE

Exemple 1
en entrée ...

10 1
en sortie ...
1

Exemple 2
en entrée ...

100 36
en sortie ...
1