AcWing 1293. 夏洛克和他的女朋友

夏洛克有了一个新女友(这太不像他了!)。

情人节到了,他想送给女友一些珠宝当做礼物。

他买了n件珠宝,第i件的价值是i+1

华生挑战夏洛克,让他给这些珠宝染色,使得一件珠宝的价格是另一件珠宝的价格的质因子时,两件珠宝的颜色不同。

并且,华生要求他使用的颜色数尽可能少。

请帮助夏洛克完成这个简单的任务。

原题链接

#include<bits/stdc++.h>
#define N 100010
using namespace std;
int a[N];
int main()
{
    int n;
    cin>>n;
    int k=1;
    for(int i=2;i<=n+1;i++)
    {
        if(!a[i])
        
        {
            a[i]=1;
            for(int j=2;j<=(n+1)/i;j++)
            a[i*j]=2,k=max(j,k);
        }
        
    }
    cout<<min(k,2)<<endl;
    for(int i=2;i<=n+1;i++)
        printf("%d ",a[i]);
    return 0;
}
posted @ 2021-01-17 16:59  君与  阅读(122)  评论(0编辑  收藏  举报