作者tropical72 (藍影)
看板C_and_CPP
標題Re: [小問題]perfect number
時間Tue Nov 30 00:48:27 2010
(6)10 = (110)2
(28)10 = (11100)2
(496)10 = (111110000)2
(8128)10 = (1111111000000)2
(33550336)10 = (1111111111111000000000000)2
(8589869056)10 = (111111111111111110000000000000000)2
(137438691328)10 = (1111111111111111111000000000000000000)2
這是偶完全數的性質
你要不要用這個性質啊?
2^(n-1)*( (2^n)-1 ), 若 (2^n)-1 是質數, 那個數就是偶完全數.
(這個已被證明了)
至於奇完全數,
目前 10^300 以內還沒發現有所謂的奇完全數
如果你是要挑戰找出第一個奇完全數的話那就加油;
如果不是的話,這樣寫可以省超多功的。
當然要練功的話,大數演算法真的是不錯的選擇。
※ 引述《steve1012 (steve)》之銘言:
: 我想要寫一個可以計算比較大一點的perfect number的程式
: 因為想多算幾個所以想用陣列
: 目前的想法是用陣列配合做陣列加減乘除的function
: 可是在寫乘和除的時候有點無從下手的感覺
: 想請教大家給我一個乘法除法的大數運算的想法
: 然後做這題有好點的方法嘛?
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
→ yoco315:竟然有這種方法!! 11/30 00:51
※ 編輯: tropical72 來自: 180.177.76.142 (11/30 01:01)
→ loveme00835:有沒有推薦的 paper 可以研究下? ._. 11/30 01:13
→ tropical72:google 歐基理德,完全數, 幾何原理這本書我還真找不到. 11/30 01:24
→ loveme00835:結果查到原po網誌 XDD 11/30 01:26
→ uranusjr:歐基理德那本是叫幾何原本啦, 我旁邊書櫃裡就有一本... 11/30 02:46
→ tropical72:嗯.key 錯.. 11/30 02:50
推 steve1012:感恩 我試試看! 11/30 21:28
→ tropical72:原po,我發現更好用的性質了耶,直接把每位數相加,一直 12/02 09:20
→ tropical72:相加到個位數,其結果必為1. 12/02 09:20
→ tropical72:發現完全數性質其實超多的,可以先去查查看比較好做. 12/02 09:20