//A.java
public class A {
public static void main(String[] args) {
for (int i = 2; i < 10000; i++) {
if (isPerfect(i)) {
System.out.print(i + " = ");
exec(i);
}
}
}
public static boolean isPerfect(int n) {
if (n == sum(n)) {
return true;
}
return false;
}
public static int sum(int n) {
int s = 1, i = 2;
while (i < n / i) {
if (n % i == 0) {
s += (i + n / i);
}
i++;
}
return s;
}
public static void exec(int n) {
System.out.print("1");
int i = 2;
while (i < n / i) {
if (n % i == 0) {
System.out.print(" + " + i + " + " + n / i);
}
i++;
}
System.out.println();
}
}
运行结果:
6 = 1 + 2 + 3
28 = 1 + 2 + 14 + 4 + 7
496 = 1 + 2 + 248 + 4 + 124 + 8 + 62 + 16 + 31
8128 = 1 + 2 + 4064 + 4 + 2032 + 8 + 1016 + 16 + 508 + 32 + 254 + 64 + 127
分享到:
相关推荐
这种方法从较小的数开始,逐个检查它是否能同时被两个输入数整除,直到找到最大的公约数为止。 在代码中,`gcd1`方法使用了这种算法: ```java public int gcd1(int m, int n) { int t = 0; if (m > n) { t = n...
题目8-7提出了完全数的概念,完全数是指其所有非自身约数之和等于其本身的数。例如,6的约数是1, 2, 3,而1 + 2 + 3 = 6,所以6是一个完全数。要找到一个数是否为完全数,可以计算其所有约数(不包括它自己)的和,...
质数是指除了1和它本身以外,不再有别的约数的数。合数是指除了1和它本身,还有别的约数的数。例如,5是质数,因为它只有1和5两个约数,而6是合数,因为它有1、2、3、6四个约数。 知识点2:质因数和分解质因数 质...
水仙花数是一个n位数,其每个位上的数字的n次幂之和等于它本身。对于三位数,这意味着153 = 1^3 + 5^3 + 3^3。题目要求找出所有三位水仙花数。通过一个循环结构,遍历100到999之间的所有数字,分别计算每一位数字的...
13. **完全平方数问题**:寻找满足条件的数,可以通过遍历和开方判断,也可以使用二分查找优化。 14. **日期判断**:根据日期计算是当年的第几天,考虑闰年和月份天数差异,使用条件判断处理。 15. **整数排序**:...
可以采用循环和判断的方式,从2开始依次尝试整除,直到n变成1,过程中记录下所有的质因数。 【程序 5】 此题涉及到条件运算符,是C/C++等语言中的三元运算符,用来根据条件返回不同的值。例如:(条件) ? 结果1 : ...
本文档提供了C语言程序设计教程第六章课后习题参考答案,涵盖了多个知识点,包括求三个实数最大值、求最大公约数和最小公倍数、求完全数、无暇素数、递归函数、分解质因数和输出闰年等。 1. 求三个实数最大值 在...
使用循环和条件判断,从2开始尝试除以每个数,直到n不能再被整除,然后更新n并继续循环。 【程序5】条件运算符。在Java中,条件运算符? : 是一种三元运算符,用于根据条件返回不同的值。例如(a > b)? a : b 表示...
小学数学复习课程主要涵盖数的概念、整除以及最大公约数和最小公倍数等核心知识点。以下是这些知识点的详细解析: 1. 数的概念: - 自然数:指非负整数,包括0和所有正整数。 - 十进制计数法:基于10为基础的计数...
代码中使用了一个内嵌的`for`循环,外层循环遍历101到200之间的所有奇数(因为除了2之外,偶数都不是素数),内层循环则检查当前数是否能被小于其平方根的任何数整除。如果找到这样的数,则表明该数不是素数,否则...
- **题目概述**:本题要求找出所有三位数中的“水仙花数”,即数的每位数字的立方和等于该数本身的数。 - **实现思路**: - 使用循环遍历100到999之间的每一个数。 - 对每个数进行拆解,分别提取个位、十位和百位...
9. **完数查找**(程序9):完数是所有小于它的因子之和等于它本身的数。遍历1到1000,计算每个数的因子之和,判断是否为完数。 10. **自由落体与反弹**(程序10):自由落体问题涉及到物理公式,每次落地后反弹的...
遍历1到1000,检查每个数的因子之和,如果等于原数则为完数。 10. **自由落体与反弹**(程序10): 通过等比数列求和公式,计算球落地和反弹的总距离。每次落地后的反弹高度是之前高度的一半。 11. **三位数排列...
一个数的约数和倍数特性是有限和无限的,其中最小约数是1,最大约数是其自身,最小倍数也是其自身,无最大倍数。此外,数的整除特性还包括能被2、3、5整除的数的特征,如2的倍数个位为0、2、4、6、8,3的倍数各数位...
题目中提到459和357的最大公约数可以通过辗转相除法计算,即不断用较大数除以较小数,然后用余数替换较大的数,直至余数为0,最后的除数即为最大公约数。在这个例子中,459除以357余102,再用357除以102余51,最终51...
素数判定的经典方法是试除法,即从2开始一直到该数的平方根,检查是否能被整除。算法可以进一步优化,比如只检查奇数或使用埃拉托斯特尼筛法等更高效的算法。 #### 水仙花数的识别与数学特性 水仙花数是一个三位数...
根据给定的信息,本文将详细解释“C语言编写的趣味菜单”中涉及的关键知识点,包括回文数的判断、利用二分法求解一元二次方程的根、辗转相除法求最大公约数和最小公倍数以及如何在控制台输出菱形图形。 ### 1. 回文...
斐波那契数列的规律是每个数等于前两个数的和,序列开始于0和1。在Java中,可以使用循环或者递归来实现。递归方法虽然简洁,但效率较低,因为存在大量重复计算。更好的方法是使用动态规划存储已计算的斐波那契数,...
**原理**:遍历从2到√n的所有数字,找到所有能整除n的数,并且将它们以及对应的配对因子累加起来。 **C++代码实现**: ```cpp #include using namespace std; int main() { int a, sum = 0; cin >> a; sum +=...