数字涂色

标题:数字涂色 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。现在请你帮帮小朋友们,算算最少需要多少种颜色才能给这N个数进行上色。

while True:
    try:
        n = input()
        clo_array = list(map(int, input().split()))
        clo_array.sort()
        N = 0
        
        while(len(clo_array) > 1):
            fisrt_array = clo_array[0]
            for clo in clo_array[1:]:
                if(clo % clo_array[0] == 0):
                    clo_array.remove(clo)
            clo_array.remove(clo_array[0])
            N += 1

        if(clo_array):
            print (N+1)
        else:
            print (N)
    except:
        break

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int main() {
    int n;
    cin>>n;
    vector<int> arr(n);
    for (int i = 0; i < n; i++) {
        cin>>arr[i];
    }
    sort(arr.begin(), arr.end());
    vector<bool> vis(n, 0);
    int count = 0;
    int ans = 0;
    for (int i = 0; i < n; i++) {
        if (vis[i]) {
            continue;
        }
        ans++;
        for (int j = i + 1; j < n; j++) {
            if (vis[j] == 0 && arr[j] % arr[i] == 0) {
                vis[j] = 1;
                count++;
                if (count == n) {
                    break;
                }
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}



全部评论
这个题目链接有吗?我想做做
点赞 回复 分享
发布于 2024-03-27 14:21 上海

相关推荐

12-19 15:04
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务