快樂數

维基百科,自由的百科全书
跳转至: 导航搜索

快樂數有以下的特性:在給定的進位制下,該數字所有數位(digits)的平方和,得到的新數再次求所有數位的平方和,如此重複進行最終結果必為1。

例如,以十進位為例

2 8 → 22+82=68 → 62+82=100 → 12+02+02=1

3 2 → 32+22=13 → 12+32=10 → 12+02=1

3 7 → 32+72=58 → 52+82=89 → 82+92=145 → 12+42+52=42 → 42+22=20 → 22+02=4 → 42=16 → 12+62=37……

因此28和32是快樂數,而在37的計算過程中,37重複出現,繼續計算的結果只會是上述數字的循環,不會出現1,因此37不是快樂數。

不是快樂數的數稱為不快樂數(unhappy number),所有不快樂數的數位平方和計算,最後都會進入 416 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的循環中。

在十進位下,100以內的快樂數有(OEIS中的数列A007770):1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100,共20個。

快樂數表格[编辑]

以下是小於100的快樂數表格,綠色數字表示它是快樂數,黃色數字表示它是不快樂數的循環。

00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99

以下是100到小於200的快樂數表格,綠色數字表示它是快樂數,黃色數字表示它是不快樂數的循環。

100 101 102 103 104 105 106 107 108 109
110 111 112 113 114 115 116 117 118 119
120 121 122 123 124 125 126 127 128 129
130 131 132 133 134 135 136 137 138 139
140 141 142 143 144 145 146 147 148 149
150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169
170 171 172 173 174 175 176 177 178 179
180 181 182 183 184 185 186 187 188 189
190 191 192 193 194 195 196 197 198 199

以下是200到小於300的快樂數表格,綠色數字表示它是快樂數。

200 201 202 203 204 205 206 207 208 209
210 211 212 213 214 215 216 217 218 219
220 221 222 223 224 225 226 227 228 229
230 231 232 233 234 235 236 237 238 239
240 241 242 243 244 245 246 247 248 249
250 251 252 253 254 255 256 257 258 259
260 261 262 263 264 265 266 267 268 269
270 271 272 273 274 275 276 277 278 279
280 281 282 283 284 285 286 287 288 289
290 291 292 293 294 295 296 297 298 299

300以內的快樂數沒有其中一位是5,300以內的數其中有一位是5,它一定不是快樂數。

發現10*10、100*100等表格的快樂數表格有線對稱

快樂數的因數[编辑]

快樂數 因數 因數個數
1 1 1
7 1、7 2
10 1、2、5、10 4
13 1、13 2
19 1、19 2
23 1、23 2
28 1、2、4、7、14、28 6
31 1、31 2
32 1、2、4、8、16、32 6
44 1、2、4、11、22、44 6
49 1、7、49 3
68 1、2、4、17、34、68 6
70 1、2、5、7、10、14、35、70 8
79 1、79 2
82 1、2、41、82 4
86 1、2、43、86 4
91 1、7、13、91 4
94 1、2、47、94 4
97 1、97 2
100 1、2、4、5、10、20、25、50、100 9
103 1、103 2
109 1、109 2
129 1、3、43、129 4
130 1、2、5、10、13、26、65、130 8
133 1、7、19、133 4
139 1、139 2
167 1、167 2
176 1、2、4、8、11、16、22、44、88、176 10
188 1、2、4、47、94、188 6
190 1、2、5、10、19、38、95、190 8
192 1、2、3、4、6、8、12、16、24、32、48、64、96、192 14
193 1、193 2
208 1、2、4、8、13、16、26、52、104、208 10
219 1、3、73、219 4
226 1、2、113、226 4
230 1、2、5、10、23、46、155、230 8
236 1、2、4、59、118、236 6
239 1、239 2
262 1、2、131、262 4
263 1、263 2
280 1、2、4、5、7、8、10、14、20、28、35、40、56、70、140、280 16
291 1、3、97、291 4
293 1、293 2

表格可知100以內快樂數沒有因數3、6、9等數,如果100以內的數是3的倍數等,它一定不是快樂數。

表格可知1000以內快樂數沒有因數9、15、18、21等數,如果1000以內的數是9的倍數等,它一定不是快樂數。

表格可知1000以內快樂數同樣也沒有能被25整除但不能被100整除,如果1000以內的數是25的倍數但不是100的倍數,它一定不是快樂數。

Python程式碼[编辑]

1 #ishappy number
2 
3 def ishappy(n):
4     a = []
5     while n not in a:
6         a.append(n)
7         n = sum([int(x) **2 for x in str(n)])
8         
9     return 'happy' if n == 1 else 'unhappy'

相關條目[编辑]

外部連結[编辑]