アルゴリズムの問題:最大の素因数を求めます
1306 ワード
タイプ:算術演算
タイトルの要件:
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;
}
}