素數是個科學計算中很重要的一個概念,素數也叫質數。素數就是最純淨的數,沒有任何其它成分的數,其它的數都可以說是由素數相乘出來的。 所以,理解好素數,對於數學和程序來說,有重要的意義。
題目是:求1000!的結果末尾有多少個0
代碼如下:
1000! = 1×2×3×4×5×...×999×1000
代碼如下:
public static void main(String[] args) {
/*1000的階乘已經是天文數字了,所以不可能計算出來,再看有多少個0*/
/* 解題思路:兩個素數2、5,相乘即可得到10,我們可以認為,有多少組2、5,結尾就有多少個0 */
/* 操作方法:操作1到1000中所有的數,看每個數能被2和5整除幾次,並分別統計,假設被2整除8次,被5整除12次,那我們可以認為有8組(2,5),即8個0*/
//被2整除的次數之和
int count2 = 0;
//被5整除的次數之和
int count5 = 0;
//遍歷所有的數
for (int number = 1; number <= 1000; number ++) {
int dynmicNumber = number;//該數的一個復制,用於不數的整除用
while (dynmicNumber % 2 == 0) { //統計該數能被2整除多少次,但是並不單獨統計,而是統計到全局
count2++;
dynmicNumber /= 2;
}
while (dynmicNumber % 5 == 0) { //統計該數能被2整除多少次,但是並不單獨統計,而是統計到全局
count5++;
dynmicNumber /= 5;
}
}
System.out.println("結尾0的個數為:" + Math.min(count2, count5));
/* 素數是個科學計算中很重要的一個概念,素,可以理解為很單純的意思,比如:白素紙,白素貞,元素。素數也叫質數,質也可以理解為單純的意思吧,質量,物質,本質。
* 素和質連起來就是素質,素質用來形容人的話,可以理解為:最基本的道德,最原始的人性,等等。
* 素數就是最純淨的數,沒有任何其它成分的數,其它的數都可以說是由素數相乘出來的。
* 所以,理解好素數,對於數學和程序來說,有重要的意義。*/
}