
正文
java亲密数代码 java亲和数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用Java编程找亲密数对
import java.util.*;
public class Main{
public static void main (String [] args) {
boolean [] found = new boolean[1001];
int t;
for (int i = 2; i 1000; i++) {
if (!found[i]) {
t = find(i);
found[i] = true;
if (t = 1000) found[t] = true;
if (find(t) == i)
System.out.printf("%d, %d\n", i, t);
}
}
}
private static int find (int n) {
int result = 0;
for (int i = 2; i n; i++)
if (n % i == 0)
result += i;
return result;
}
}
注意,此题中的亲密数定义似乎和传统的定义不一样,此题中是除去1和自身,而传统的定义是包括1。
我的输出是
48, 75
140, 195
相关问答
Q1: Java编程.输出20-1000之间所有的亲密数.若A的因子和等于B,B的因子和等于A,且A≠B,则A和B互称亲密数
public static void main(String[] args) {
for(int i = 20; i = 1000; i++) {
int pair = intimateNumber(i);
if (pair i intimateNumber(pair) == i) {
System.out.println(i + ", " + pair);
}
}
}
public static int intimateNumber(int n) {
if(n = 0) {
return -1;
}
int squareRoot = (int)Math.floor(Math.sqrt(n));
int result = 0;
for(int i = 2; i = squareRoot; i++) {
if(n % i == 0) {
if(i * i != n) {
result += i + n / i;
} else {
result += i;
}
}
}
return result;
}
Q2: 求n以内的亲密数对(Java编程),输入输出样例已有
按照你的要求编写的求n以内的亲密数对的Java程序如下
import java.util.Scanner;
public class CCC {
public static void main(String[] args) {
int a,b,i,n,num;
System.out.println("请输入一个正整数");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
for(a=1;an;a++)
{
for(b=0,i=1;i=a/2;i++)
if(a%i==0) b+=i;
for(num=0,i=1;i=b/2;i++)
if(b%i==0) num+=i;
if(num==a ab)
System.out.println(a+","+b);
}
}
}
运行结果
请输入一个正整数
3000
220,284
1184,1210
2620,2924
关于java亲密数代码和java亲和数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






