java 亲密数
作者:互联网
标题
亲密数
问题描述
如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数
题目要求
不要求输入,输出格式中应包含结果
输入格式
输出格式
例如:3000以内的全部亲密数是:48-75,140-195 ……
考察内容*
算法的空间复杂度和时间复杂度
解题思路*
1.计算出A的因子和赋值给B;
(当A的因子和等于B时,B的因子和也等于A, 那么A和B就是亲密数
2.计算B的因子和赋给sB;
3.比较sB与A的值,如果相等则A和B是亲密数
核心代码*
package test_1;
// intimacy 亲密数
public class intimacy {
public static void main(String[] args) {
int i, A, B, sB;
System.out.print("3000以内的全部亲密数:");
for (A = 1; A <= 3000; A++) {
//计算数 A 的各因子,各因子之和存放于 B
for (B = 0, i = 1; i <= A / 2; i++) {
if (A % i== 0) {
B += i;
}
}
//计算 B 的各因子,各因子之和存于 sB
for (sB = 0, i = 1; i <= B / 2; i++) {
if (B % i== 0) {
sB += i;
}
}
//sB=A,则A和B是一对亲密数
if (sB == A && A < B) {
System.out.print(A + "—" + B + ",");
}
}
}
}
标签:java,格式,因子,亲密,3000,等于,sB 来源: https://blog.csdn.net/weixin_53133341/article/details/121171953