完全數的java演算法

2021-08-23 11:45:31 字數 1127 閱讀 8537

什麼是完全數?

如果乙個正整數恰好等於它所有的真因子(即除了自身以外的因子)之和,則稱之為完全數(完美數)。

例:6=1+2+3

歐幾里德完全數定理:若p、(2的p次冪-1) 這兩個值均為素數,則 2的(p-1)次冪 乘以 (2的p次冪-1) 的值是個完全數。

package yzg.arithmetic;

/*** 歐幾里德完全數定理:若p、(2的p次冪-1) 這兩個值均為素數,則 2的(p-1)次冪 乘以 (2的p次冪-1) 的值是個完全數。

* 如果乙個正整數恰好等於它所有的真因子(即除了自身以外的因子)之和,則稱之為完全數(完美數)。 例:6=1+2+3

* * @author yzg

* */

public class entiretynumber

long t = 2;

for (int k = 1; k < p; k++)

long j = t / 2;

t--;

if (pri(t))

}normal();

}// 八個完全數

// 3 * 2 = 6

// 7 * 4 = 28

// 31 * 16 = 496

// 127 * 64 = 8128

// 8191 * 4096 = 33550336

// 131071 * 65536 = 8589869056

// 524287 * 262144 = 137438691328

// 2147483647 * 1073741824 = 2305843008139952128

/*** 判斷傳入的引數是否是乙個素數

* * @param sushu

* @return true=是,false=不是

*/public static boolean pri(long sushu)

}return true;

}/**

* 求10000以內的完全數,普通的演算法。

* 找到後,顯示成和的形式。

*/public static void normal()

}if (s == i)

}system.out.println();}}

}}

完全數的java演算法實現

本文為博主原創,接受意見,不喜勿噴 本文以10000以內的完全數作為例子 完全數 指所有因子之和 包括1但不包括這個數本身 等於其本身的數叫完全數。例如 6 1 2 3。1 2 3都是6的因子。1.第一層迴圈是遍歷10000以內的所有數 不包括1,因為包括1的話後面會變得更加麻煩 以便於後面做判斷 ...

演算法練習 完全數

完全數 定義 數的因子就是所有可以整除這個數的數,但是不包括這個數自身。比如15的因子是1,3,5 如果乙個正整數如果正好等於它的所有因子之和,這個數就稱為 完數 例如,6的因子為 1,2,3,而6 1 2 3,因此6是 完數 維基百科 完全數 梅森素數 古希臘數學家歐幾里得是通過 的表示式發現前四...

完全數的性質

完全數性質 1 古希臘數學家歐幾里得是通過 2 n 1 2 n 1 的表示式發現頭四個完全數的。2 偶完全數都是以6或8結尾。如果以8結尾,那麼就肯定是以28結尾。3 除6以外的偶完全數,把它的各位數字相加,直到變成個位數,那麼這個個位數一定是1 亦即 除6以外的完全數,被9除都餘1。28 2 8 ...