33,027
社区成员




package com.my.test;
import java.util.ArrayList;
import java.util.List;
public class ArthTest {
//==求三位数中满足 abc = ab + bc + c 的所有数。。。==//
private int hundred;//百位数
private int ten;//十位数
private int unit;//个位数
public int equationOfOne(int num){
hundred=num/100;
ten=(num%100)/10;
unit=num%10;
if(num==hundred*ten+ten*unit+unit){
return num;
}
return -1;
}
public void print(){
int n=0;
List<Integer> list = new ArrayList<Integer>();
for(int num=100;num<1000;num++){
int value = equationOfOne(num);
if(value != -1){
list.add(value);
}
}
System.out.println("所有符合条件的数位");
for(int j=0;j<list.size();j++){
System.out.println(list.get(j));
}
}
//==求4位整数中因子数最多的一个数。 例如 6的因子有 2,3==//
/**
* 获得num所有的因子数
* @param num
* @return
*/
public int getFactorsOfNum(int num){
int sumOfFactors=0;
for(int i=1;i<=num;i++){
if(num%i==0){
sumOfFactors++;
}
}
return sumOfFactors;
}
/**
* 获得四位正整数(负整数同理)的因子数的集合
* @return
*/
public List getFactors(){
List<Integer> array = new ArrayList<Integer>();
for(int num=1000;num<10000;num++){
array.add(getFactorsOfNum(num));
}
return array;
}
/**
* 获得因子数最多的那个四位数
* @return
*/
public int[] getMax(){
int[] maxAndThisNum = new int[2];
List<Integer> list = getFactors();
for(int i=0;i<list.size()-1;i++){
if(list.get(i)>list.get(i+1)){
maxAndThisNum[0]=list.get(i);
maxAndThisNum[1]=i;
list.set(i+1, list.get(i));
list.set(i, list.get(i+1));
}
}
return maxAndThisNum;
}
public static void main(String args[]){
ArthTest atest= new ArthTest();
atest.print();
int maxAndThisNum[] = atest.getMax();
System.out.println("四位整数中含有因子最多的数为:"+(maxAndThisNum[1]+1000)+"因子数为:"+maxAndThisNum[0]);
}
}