本文實例講述了Java求10到100000之間的水仙花數算法。分享給大家供大家參考,具體如下:
水仙花數:
概念:水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
算法思路分析:這個算法我們分兩個步驟來進行;第一:我們做一個求一個數的位數的函數;第二:我們通過調用此函數來進行10到100000之間素數的計算!
下面給出具體的代碼(僅供參考):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package javastudy; public class Testit1 { public static void main(String[] args) { for ( int number = 100 ; number <= 100000 ; number++) { //求10到10000之間所有的素數,一個大的循環 int temp = number; //這步代碼是為了讓Getlength(number)不變 int sum = 0 ; for ( int i = 0 ; i < Getlength(number); i++) { sum += Math.pow(temp % 10 , Getlength(number)); //次方和相加 temp = temp / 10 ; } if (sum == number) { //判斷是否相等 System.out.print(number+ " " ); } } } static int Getlength( int number) { //這個函數是為了求一個數字的位數 int i = 0 ; while (number / 10 > 0 ) { i++; number /= 10 ; } return i + 1 ; } } |
運行結果:
希望本文所述對大家java程序設計有所幫助。
原文鏈接:http://blog.csdn.net/qq_32575047/article/details/53965013