<prompt> Andika algoriti ili kubaini kama nambari n inafurahisha.Nambari ya furaha ni nambari inayofafanuliwa kwa mchakato ufuatao: Kuanzia nambari kamili chanya, badilisha nambari kwa jumla ya miraba ya tarakimu zake. Rudia mchakato huo hadi nambari iwe sawa na 1 ambapo itakaa, au inazunguka bila mwisho katika mzunguko ambao haujumuishi 1. Nambari hizo ambazo mchakato huu unaisha kwa 1 zina furaha.Rudisha kweli _kama_ n _ni nambari ya furaha, na_ sivyo _kama sivyo_.Mfano wa 1:Ingizo: n 19Pato: kweliMaelezo:12 92 8282 22 6862 82 10012 02 02 1Mfano wa 2:Ingizo: n 2Pato: si kweliVikwazo: 1 n 231 - 1  <response>: chatudef get_nextn: jumla 0 wakati n 0: tarakimu n 10 jumla tarakimu tarakimu n 10 kurudisha jumladef is_happyn: polepole, haraka n, get_nextn wakati haraka ! 1 na polepole ! haraka: polepole get_nextpolepole haraka get_nextget_nextharaka kurudi haraka 1maelezoAlgorithm ya kuamua ikiwa nambari inafurahiya mara kwa mara hufanya jumla ya miraba ya tarakimu zake. Tunaweza kutumia njia ya polepole na ya haraka ya pointer pia inaitwa algoriti ya Floyd ya kutafuta mzunguko. Katika njia hii, tuna viashiria viwili polepole na haraka, zote zikielekeza kwa nambari ya ingizo n. Katika kila marudio, kielekezi cha polepole kinasogezwa hadi nambari inayofuata katika mfuatano kwa kupiga getNext huku kielekezi cha fast kikihamia inayofuata ya nambari inayofuata katika mfuatano. Iwapo wakati wowote, tunapata kwamba kielekezi haraka kinakuwa 1, inamaanisha kuwa nambari hiyo ni nambari ya furaha. Ikiwa viashiria polepole na haraka vinakuwa sawa na si 1, ina maana kwamba kuna mzunguko na nambari si nambari ya kufurahisha.Chaguo za kukokotoa za getNextn hukokotoa nambari inayofuata katika mfuatano kwa kujumlisha miraba ya tarakimu za nambari ya sasa n. Chaguo hili la kukokotoa linaitwa katika chaguo kuu kuu la isHappyn kwa kusasisha viashiria polepole na haraka. 