Faits :
A.
Par jugement du 6 août 2015, le Tribunal de police de Genève a condamné X._ pour séjour illégal (art. 115 al. 1 let. b de la loi fédérale du 16 décembre 2005 sur les étrangers, LEtr; RS 142.20) à une peine privative de liberté de 45 jours, sous déduction d'un jour de détention avant jugement, et a renoncé à révoquer la libération conditionnelle octroyée le 21 juillet 2014.
B.
Par arrêt du 15 décembre 2015, la Chambre pénale d'appel et de révision de la Cour de justice genevoise a rejeté l'appel formé par X._.
Cette condamnation repose sur les faits suivants:
Du 22 juillet 2014 au 19 avril 2015, X._, ressortissant algérien, a séjourné sur le territoire suisse, sans autorisation, dépourvu de papiers d'identité et de moyens d'existence, alors qu'il faisait l'objet d'une interdiction d'entrée en Suisse valable du 6 août 2013 au 13 novembre 2017, notifiée le 13 avril 2014.
Une procédure de renvoi a été introduite à son encontre le 1er mars 2011, et il fait l'objet d'une décision de renvoi exécutoire.
Le recourant a déclaré avoir quitté l'Algérie en 2007 et loger en Suisse depuis le mois de mars 2008 dans un abri de protection civile et, occasionnellement, chez A._. Il a expliqué qu'il comptait épouser sa compagne, qui vivait en Espagne et qu'il connaissait depuis dix ans, le projet du couple étant de s'installer dans ce pays ou au Portugal.
C.
Contre ce dernier arrêt, X._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut, principalement, à la réforme de l'arrêt attaqué en ce sens qu'il est acquitté du chef de l'infraction à l'art. 115 al. 1 let. b LEtr et, à titre subsidiaire, à l'annulation de l'arrêt attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision. En outre, il sollicite l'assistance judiciaire.
Invités à se déterminer, la cour cantonale y a renoncé, alors que le Ministère public genevois a déposé des déterminations; celles-ci ont été communiquées au recourant.
Considérant en droit :
1.
Le recourant ne conteste pas s'être trouvé en séjour illicite. Mais il fait valoir que sa condamnation à une peine privative de liberté n'est pas compatible avec la Directive du Parlement européen et du Conseil du 16 décembre 2008 relative aux normes et procédures communes applicables dans les Etats membres au retour des ressortissants de pays tiers en séjour irrégulier (Directive sur le retour 2008/115/CE).
1.1. Selon l'art. 115 al. 1 LEtr, sera puni d'une peine privative de liberté d'un an au plus ou d'une peine pécuniaire quiconque contrevient aux dispositions sur l'entrée en Suisse prévues à l'art. 5 LEtr (let. a), y séjourne illégalement (let. b) ou y exerce une activité lucrative sans autorisation (let. c).
1.2. Selon la jurisprudence du Tribunal fédéral, l'art. 115 al. 1 let. b LEtr doit être interprété conformément à la jurisprudence de l'Union européenne en rapport avec la Directive sur le retour; en d'autres termes, une peine privative de liberté pour séjour illicite ne peut être infligée que si les autorités administratives ont entrepris toutes les mesures raisonnables pour l'exécution de la décision de retour, mais que la procédure y relative a échoué en raison du comportement de l'intéressé (arrêts 6B_196/2012 du 24 janvier 2013 consid. 2.1.3 et 2.2; 6B_188/2012 du 17 avril 2012 consid. 5; 6B_139/2014 du 5 août 2014 consid. 2). Dans d'autres arrêts, le Tribunal fédéral a souligné qu'une sanction pénale pour séjour illicite était possible si le renvoi était objectivement possible et qu'une procédure administrative de renvoi avait été engagée mais apparaissait d'emblée comme dénuée de toute chance de succès (arrêt 6B_713/2012 du 19 avril 2013 consid. 1.4). Une condamnation pénale est également possible lorsque l'étranger n'a pas collaboré à son expulsion ou a évité la prise de mesures administratives en trompant les autorités de la police des étrangers sur sa volonté de quitter la Suisse (arrêt 6B_713/2012 du 19 avril 2013 consid. 5).
1.3. En l'espèce, la cour cantonale a rappelé que la décision de renvoi était exécutoire. Comme l'Algérie est un pays qui n'accepte pas le retour de ses ressortissants par vols spéciaux et que le recourant n'entendait pas coopérer à son retour, elle a considéré que les autorités administratives avaient pris toutes les mesures raisonnables pour renvoyer le recourant et qu'aucune autre démarche supplémentaire ne pouvait être exigée. Elle en a conclu que la peine privative de liberté prononcée à l'encontre du recourant n'allait pas à l'encontre de la Directive sur le retour.
1.4.
1.4.1. La procédure de rapatriement comporte plusieurs niveaux. Si la personne à rapatrier a donné son accord à un retour autonome, elle est escortée par la police cantonale jusqu'à l'embarquement, mais poursuit son voyage seule (art. 28 de l'ordonnance relative à l'usage de la contrainte et de mesures policières dans les domaines relevant de la compétence de la Confédération [ordonnance sur l'usage de la contrainte, OLUsC; RS 364.3]). Si la personne à rapatrier n'a pas donné son accord à un retour autonome, elle sera escortée par deux agents de police en civil sur un vol de ligne jusqu'à l'aéroport de destination ou de transit (art. 28 OLUsC). Si la personne à rapatrier oppose une forte résistance, elle pourra être transportée à bord d'un vol spécial (art. 28 OLUsC).
Il est vrai que l'Algérie n'accepte pas le retour de ses ressortissants par vols spéciaux (cf. arrêt 6B_525/2014 du 9 octobre 2014 consid. 1.2). Les renvois sous la contrainte à destination de l'Algérie sont néanmoins possibles, lorsque le rapatriement est effectué sur des vols de ligne (arrêt 2C_1072/2015 du 21 décembre 2015, consid. 3.3; rapport du Conseil fédéral du 30 octobre 2012 en réponse au postulat du Conseiller national Hugues Hiltpold [11.3689], Migration en provenance de pays nord-africains (et du Yémen) - Situation en Suisse). En outre, les autorités compétentes algériennes établissent régulièrement des laissez-passer pour les personnes dont l'identité et la nationalité algérienne ont été confirmées (arrêt 2C_1072/2015 du 21 décembre 2015, consid. 3.3).
1.4.2. En l'espèce, les autorités administratives n'ont procédé à aucune mesure de contrainte prévue par la loi fédérale sur les étrangers (notamment par les art. 73 à 78 LEtr.). Le fait que l'Algérie ne collabore pas avec la Suisse en matière de vols spéciaux ne les dispensait pas de toute démarche en vue du renvoi du recourant. Elles ne sauraient pas non plus faire valoir que le recourant a déclaré, dans le cadre d'une procédure pénale, ne pas souhaiter rentrer en Algérie pour affirmer que la procédure de renvoi était vouée à l'échec. Pour que la procédure de retour apparaisse comme dénuée de chance de succès, il faut que l'étranger se soit soustrait aux mesures administratives de renvoi ou ait trompé les autorités administratives, rendant par-là la procédure de retour impossible.
En conclusion, la procédure administrative de renvoi n'a pas été menée jusqu'à son terme sans succès et elle n'apparaissait pas d'emblée comme dénuée de toute chance de succès. Dans ces conditions, la condamnation du recourant à une peine privative de liberté pour séjour illégal contrevient à la Directive sur le retour.
2.
Le recours doit être admis, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale pour nouvelle décision. Le recourant qui obtient gain de cause ne supporte pas de frais judiciaires (art. 66 al. 1 LTF) et peut prétendre à une indemnité de dépens à la charge du canton de Genève (art. 68 al. 1 et 2 LTF), ce qui rend sans objet la requête d'assistance judiciaire.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Genève versera au mandataire du recourant la somme de 3'000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale d'appel et de révision.
Lausanne, le 7 décembre 2016
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Kistler Vianin