算法提高之夏洛克和他的女朋友

算法提高之夏洛克和他的女朋友

  • 核心思想:筛质数

    • 因为质因子与其合数不能为同一个颜色
    • 所以将质数分一组 合数分一组 那么一定符合要求
    • 结果颜色数量<=2:在n<=2时为1种颜色 >2时为2种颜色
cpp 复制代码
  #include <iostream>
  #include <cstring>
  #include <algorithm>
  
  using namespace std;
  const int N = 100010;
  
  int prime[N],cnt;
  bool st[N];
  
  void get_prime(int n)
  {
      for(int i=2;i<=n;i++)
      {
          if(!st[i]) prime[cnt++] = i;
          for(int j=0;prime[j] * i <= n;j++)
          {
              st[prime[j]*i] = true;
              if(i % prime[j] == 0) break; 
          }
      }
  }
  
  int main()
  {
      int n;
      cin>>n;
      get_prime(n+1);
      if(n<=2) cout<<1<<endl;
      else cout<<2<<endl;
      for(int i=2;i<=n+1;i++)
      {
          if(st[i]) cout<<"2 ";
          else cout<<"1 ";
      }
  }
相关推荐
橘子汽水1683 小时前
Leetcode 23,543合并K个升序链表,二叉树的直径
算法·leetcode·链表
huameinan狮子3 小时前
Adaboost算法原理与计算实例
算法
Tri_Function3 小时前
动态规划DP1(c++)
c++
别怪我很水3 小时前
API中提供了VelocityTracker类用于计算触摸事件MotionEvent的速度,而其内部默认使用的方法就是最小二乘法,本 ...
算法·gitee·最小二乘法
清水迎朝阳6 小时前
客户端软件 — 用户统计方案
服务器·c++·客户端·用户统计
Re.不晚6 小时前
挑战做100道力扣算法- DAY1
算法·leetcode·职场和发展
蓝悦无人机6 小时前
《Planning algorithms》读书笔记——第1章 引言
算法·读书笔记·规划算法·lavalle
Sagittarius_A*7 小时前
分组密码基础(二):Feistel 结构与 DES 的设计思想
算法·信息安全·密码学·des·数论
青山木7 小时前
Hot 100 --- 搜索插入位置
java·数据结构·算法·leetcode