为求阅读方便,博主只定义完成了方法,测试时需要调用方法并且括号内加入参数。
首先先简单了解一下这三个数分别是什么。
水仙花数 | 素数 (质数) | 完全数 |
---|---|---|
个十百位分别立方后的加和等于他本身的三位数 | 除了1和它本身之外没有其他因子的自然数 | 除了它本身之外的因子加和等于它本身的数 |
具体实现如下:
1.判断是否是水仙花数:
public static void shuiXianhua(int num){
int g, s, b;
if (num >= 100 && num <= 999) {
g = num % 10; //个位数
s = num / 10 % 10; //十位数
b = num / 100; //百位数
if (g * g * g + s * s * s + b * b * b == num){
System.out.println("是水仙花数");
}
else{
System.out.println("不是水仙花数");
}
}
}
2.判断是否是素数:
public static boolean isPrime(int n){
int i;
if(n<2){
return false;
}
for(i=2;i<n;i++){
if(n%i==0){
return false;
}
}
return true;
}
3.求1000以内所有的完数:
public static void wanQuan(){
int i, j, sum = 0;
for (i = 1; i < 1000; i++) {
sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.println(i);
}
}
}