一、数学背景介绍:英国大数学家哈代曾发现一种有趣的现象:
153=1*1*1+5*5*5+3*3*3
371=3*3*3+7*7*7+1*1*1
370=3*3*3+7*7*7+0*0*0
407=4*4*4+0*0*0+7*7*7
这些是三位数,并且数值等于各位数字的三次幂之和。这种数就称为“水仙花数”。
二、要求编写代码实现找出给定范围以内的水仙花数。
package com.js.math;
import java.util.Scanner;
/**
* 水仙花数
* 三位数,并且数值等于各位数字的三次幂之和。这种数就称为“水仙花数”。
* 153=1*1*1+5*5*5+3*3*3
* @author js
*
*/
public class NarcissusNum {
public static void main(String[] args) {
int boundary = 0;
int a = 0;
int n1 = 0;
int n2 = 0;
int n3 = 0;
System.out.println("请输入查找范围...");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
boundary = scanner.nextInt();
if(boundary>999)
boundary = 999;
for(a=100;a<boundary;a++){
n1 = a/100;
n2 = (a-n1*100)/10;
n3 = (a-n1*100-n2*10);
if(a==n1*n1*n1+n2*n2*n2+n3*n3*n3)
System.out.println("找到一个水仙花数:"+a);
}
}
}
}