java代码怎么求亲密数 c语言求亲密数

JAVA 求2~1000中的所有亲密数对(亲密数对是指:如果A的因子和等于B,B的因子和等于A

public class QinMi {

创新互联公司是一家专注于成都网站制作、成都做网站与策划设计,东至网站建设哪家好?创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:东至等地区。东至做网站价格咨询:028-86922220

private int a[] = new int[999];//存储2-1000的每个数的因子和

private int duiShui = 0;//亲密数的对数

public int[] jiSuan() {

for (int i = 2; i = 1000; i++) {//外层循环是从2-1000

int sum = 0;

for (int j = 1; j i; j++) {//判断该数是不是可以被整除、排除本身

if (i % j == 0) {

sum += j;//计算该数的因子和

}

a[i - 2] = sum;//存储到容器中

}

}

return a;

}

public void howMany() {//计算有多少对

for (int i = 0; i a.length - 1; i++) {//用的是选择排序的思想

for (int j = i + 1; j a.length; j++) {

if (a[i] == a[j]) {//如果相等对数就增加一次

duiShui++;

}

}

}

System.out.println(duiShui);

}

public static void main(String[] args) {

QinMi a = new QinMi();

a.jiSuan();

a.howMany();

}

用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编程.输出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;

}

求3000以内的亲密数(编程)

#includestdio.h int main() { int a,i,b,n; printf("There are following friendly--numbers pair smaller than 3000:\n"); for(a=1;a3000;a++) /*穷举1000以内的全部整数*/ { for(b=0,i=1;i=a/2;i++) /*计算数a的各因子,各因子之和存放于b*/ if(!(a%i))b+=i; /*计算b的各因子,各因子之和存于n*/ for(n=0,i=1;i=b/2;i++) if(!(b%i))n+=i; if(n==aab) printf("%4d..%4d ",a,b); /*若n=a,则a和b是一对亲密数,输出*/ } } *运行结果 There are following friendly--numbers pair smaller than 3000: 220.. 284 1184.. 1210 2620.. 2924

求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代码怎么求亲密数 c语言求亲密数
转载来于:http://scyanting.com/article/doochoc.html