<prompt> Kwa kuzingatia nambari kamili chanya, rudisha kweli _kama_ idadi _ni mraba kamili au_ sivyo _vinginevyo_.mraba kamili ni nambari kamili ambayo ni mraba wa nambari kamili. Kwa maneno mengine, ni bidhaa ya nambari kamili na yenyewe.Hupaswi kutumia kitendakazi chochote cha maktaba iliyojengewa ndani, kama vile sqrt.Mfano wa 1:Ingizo: nambari 16Pato: kweliMaelezo: Tunarudi kweli kwa sababu 4 4 16 na 4 ni nambari kamili.Mfano wa 2:Ingizo: nambari 14Pato: si kweliMaelezo: Tunarudisha sivyo kwa sababu 3.742 3.742 14 na 3.742 sio nambari kamili.Vikwazo: 1 nambari 231 - 1  <response>: chatudef is_perfect_squarenambari: int - bool: ikiwa nambari 2: kurudi Kweli kushoto, kulia 2, nambari 2 wakati kushoto kulia: katikati kushoto kulia - kushoto 2 mraba katikati katikati ikiwa mraba nambari: kurudi Kweli ikiwa mraba nambari: kulia katikati - 1 kwingine: kushoto katikati 1 kurudi UongomaelezoKanuni hutumia mbinu ya utafutaji wa binary ili kupata mzizi wa mraba wa nambari iliyotolewa. Huanza na kushoto saa 2 na kulia katika nusu ya nambari ya ingizo. Inahesabu thamani ya kati na mraba. Ikiwa thamani ya katikati ya mraba ni sawa na nambari ya ingizo, chaguo za kukokotoa hurejesha Kweli; nambari ni mraba kamili. Ikiwa thamani ya katikati ya mraba ni kubwa kuliko nambari ya ingizo, inasasisha haki hadi katikati - 1; vinginevyo, inasasisha kushoto hadi katikati 1. Chaguo la kukokotoa linarudia hadi thamani ya kushoto iwe kubwa kuliko thamani inayofaa. Katika hali hiyo, chaguo la kukokotoa linarudi Sivyo, ikionyesha kwamba nambari ya ingizo sio mraba kamili. 