關於快樂數的乙個猜想

2021-10-05 15:14:59 字數 1084 閱讀 7519

有一段時間沒寫部落格了,今天看到快樂數,突然想起很久之前的乙個猜想,就又翻了出來。

快樂數的特性是什麼?該數字所有數字的平方和,得到的新數再次求所有數字的平方和,如此重複進行,最終結果一定為1。而我們知道,int_max是21_4748_3647。如果想讓次數盡可能多,那直覺應該是讓所有數字的平方和最大。在int_max的範圍內,數字平方和最大的數字應該是19_9999_9999,而這個數的數字平方和是729。

這意味著什麼?在int_max的範圍內,所有數字的數字平方和都不會超過這個數,也就意味著經過一次轉換之後,int_max範圍內的所有快樂數都應該出現在729以內。在這個範圍內的快樂數有(來自維基百科):

1, 7, 10, 13, 19, 23, 28, 31, 32, 44, 49, 68, 70, 79, 82, 86, 91, 94, 97, 100, 103, 109, 129, 130, 133, 139, 167, 176, 188, 190, 192, 193, 203, 208, 219, 226, 230, 236, 239, 262, 263, 280, 291, 293, 301, 302, 310, 313, 319, 320, 326, 329, 331, 338, 356, 362, 365, 367, 368, 376, 379, 383, 386, 391, 392, 397, 404, 409, 440, 446, 464, 469, 478, 487, 490, 496, 536, 556, 563, 565, 566, 608, 617, 622, 623, 632, 635, 637, 638, 644, 649, 653, 655, 656, 665, 671, 673, 680, 683, 694, 700, 709, 716。

而這些快樂數「收斂」到1最多隻需要10步(565和655)。所以,我猜想,int_max以內的所有快樂數最多只需要11步就會收斂到1。由此,11次迴圈之後仍然沒有收斂到1的數字一定不是快樂數。

bool

(int n)

if(new_n ==1)

n = new_n;

--n;

}return

false

;}

當然這只是乙個猜想。

編寫乙個演算法判斷乙個數是不是「快樂數」。

乙個 快樂數 的定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為1,也可能是無限迴圈但始終變不到1.如果可以變為1,那麼這個數就是快樂數。例項 輸入 19 輸出 true 解釋 1 2 9 2 82 8 2 2 2 68 6 2 8 2 100 1...

關於行列式的乙個猜想

對於乙個方陣 begin a left begin a a cdots a a a cdots a vdots vdots ddots vdots a a cdots a end right end 用 a i 來表示方陣 a 中第 i 個列向量。取n維空間中的一組單位正交基 boldsymbol,...

乙個關於四位數猜想的驗證

摘要 有這樣乙個猜想 給定乙個四位數,abcd找出abcd組合成的最大數和最小數,然後相減,然後得到乙個新的四位數,重複該過程,不超過8次即可得到乙個固定的數6174 現在用c語言進行驗證 1 首先需要構建的函式是找到乙個四位數最大或者最小的組合 對於任意四位數,利用取餘數求出每個位,然後利用桶式排...