疫情過后希望小學終於又重新開學了,3年2班開學第一天的任務是:將后面的黑板報重新制作。
黑板上已經寫上了N個正整數,同學們需要給這每個數分別上一種顏色,為了讓黑板報既美觀又有學習意義
老師要求同種顏色的所有數都可以被這個顏色中最小的那個數整除,現在幫小朋友們算算最少需要多少種顏色,給這N個數進行上色
輸入描述
第一行有一個正整數N,其中 1 <= n <=100
第二行有N個int型數,保證輸入數據在[1,100]范圍中,表示黑板上各個正整數的值
輸出描述
輸出只有一個整數,為最少需要的顏色種數
輸入
3
2 4 6
輸出
1
說明:
所有數都能被2整除
輸入
4
2 3 4 9
輸出
2
說明:
2與4塗一種顏色,4能被2整除
3與9塗另一種顏色,9能被3整除
不能塗同一種顏色
查看代碼
import java.util.*;
public class Demo18 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
String[] split = sc.nextLine().split(" ");
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < n; i++){
list.add(Integer.parseInt(split[i]));
}
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
if(list.get(0) == 1){
System.out.println(1);
return;
}
for(int i = 0; i < list.size(); i++){
int temp = list.get(i);
for(int j = i + 1; j < list.size(); ){
if(list.get(j) % temp == 0) list.remove(j);
else j++;
}
}
System.out.println(list.size());
}
}
總結:練的太少,思路崎嶇。