关于java亲和书的信息
今天给各位分享java亲和书的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
JAVA 求2~1000中的所有亲密数对(亲密数对是指:如果A的因子和等于B,B的因子和等于A
public class QinMi {
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 求亲密数
试试
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亲和书的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java亲和书的信息别忘了在本站进行查找喔。
发布于:2022-12-11,除非注明,否则均为
原创文章,转载请注明出处。