「java亲密数」java亲密数对

博主:adminadmin 2022-12-27 14:39:06 57

今天给各位分享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亲密数对的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。