「java亲密数」java亲密数对
今天给各位分享java亲密数的知识,其中也会对java亲密数对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
Java 求亲密数
试试
public class 亲密数{
public static void main(String argv [] ){
int a,i,b,n;
System.out.println("There are following friendly-numbers pair smaller than 6000:\n");
for(a=1;a6000;a++){ //穷举6000以内的全部整数
for(b=0,i=1;i=a/2;i++){//*计算数a的各因子,各因子之和存放于b
if((a%i)==0){
b+=i;
}
}
//*计算b的各因子,各因子之和存于n
for(n=0,i=1;i=b/2;i++){
if((b%i)==0){
n+=i;
}
}
if(n==aab){
System.out.println( String.format("%4d..%4d\n",a,b) );//*若n=a,则a和b是一对亲密数,输出
}
}
}
}
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;
}
用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
关于java亲密数和java亲密数对的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-27,除非注明,否则均为
原创文章,转载请注明出处。