类型:数学运算
题目要求:
输入n个数,求出拥有最大质因数的数。
```java
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<Long> arrayList=new ArrayList<Long>();
long result=1l;
Scanner sc=new Scanner(System.in);
while (sc.hasNextLine()) {
String input=sc.nextLine();
if(input.isEmpty()){
break;
}else {
arrayList.add(Long.parseLong(input));
}
}
//max值为该数字对应的最大质因数
long max=getTheLargestPrimeFactor(arrayList.get(0));
long tmp;
for (long n:arrayList) {
tmp=getTheLargestPrimeFactor(n);
if(tmp>max){
max=tmp;
result=n;
}
}
System.out.println(result);
}
//计算最大质因数
public static long getTheLargestPrimeFactor(long n){
long returnFactor=1l;
for(long factor=2l;n>1;factor++){
if(n%factor==0){
n=n/factor;
returnFactor=factor;
while(n%factor==0){
n=n/factor;
}
}
}
return returnFactor;
}
}