アルゴリズムの問題:最大の素因数を求めます


タイプ:算術演算

タイトルの要件:


n個の数を入力し,最大素因数を持つ数を求める.


```java

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        ArrayList arrayList=new ArrayList();
        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;
    }
}