目录
一、题目描述
疫情过后希望小学终于又重新开学了
3年2班开学第一天的任务是
将后面的黑板报重新制作
黑板上已经写上了N个正整数
同学们需要给这每个数分别上一种颜色
为了让黑板报既美观又有学习意义
老师要求同种颜色的所有数都可以被这个颜色中最小的那个数整除
现在帮小朋友们算算最少需要多少种颜色,给这N个数进行上色
二、输入输出
1.输入描述
第一行有一个正整数N
其中 1 <= n <=100
第二行有N个int型数,保证输入数据在[1,100]范围中
表示黑板上各个正整数的值
2.输出描述
输出只有一个整数,为最少需要的颜色种数
3.示例
输入示例1
3
2 4 6
输出示例1
1
说明:
所有数都能被2整除
输入示例2
4
2 3 4 9
输出示例2
2
说明:
2与4涂一种颜色,4能被2整除
3与9涂另一种颜色,9能被3整除
不能涂同一种颜色
三、代码实现Java
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String s = in.nextLine();
String str = in.nextLine();
String[] split = str.split(" ");
List<Integer> numList = Arrays.stream(split).map(Integer::parseInt).sorted().collect(Collectors.toList());
int result = 0;
result = getNewList(numList, result);
System.out.println(result);
}
}
private static int getNewList(List<Integer> numList, int result) {
if (numList.size() == 0) {
return result;
}
List<Integer> newList = new ArrayList<>();
for (int i = 1; i < numList.size(); i++) {
Integer integer = numList.get(0);
Integer integer1 = numList.get(i);
if (integer1 % integer != 0) {
newList.add(integer1);
}
}
result++;
return getNewList(newList, result);
}