Coprime

AtCoder Beginner Contest 215


Time Limit: 2 sec / Memory Limit: 1024 MB

Score : 400400 points

Problem Statement

Given a sequence of NN positive integers A=(A_1,A_2,\dots,A_N)A=(A1​,A2​,…,AN​), find every integer kk between 11 and MM (inclusive) that satisfies the following condition:

  • \gcd(A_i,k)=1gcd(Ai​,k)=1 for every integer ii such that 1 \le i \le N1≤i≤N.

Constraints

  • All values in input are integers.
  • 1 \le N,M \le 10^51≤N,M≤105
  • 1 \le A_i \le 10^51≤Ai​≤105

Input

Input is given from Standard Input in the following format:

NN MM
A_1A1​ A_2A2​ \dots… A_NAN​

Output

In the first line, print xx: the number of integers satisfying the requirement.
In the following xx lines, print the integers satisfying the requirement, in ascending order, each in its own line.


Sample Input 1 Copy

Copy

3 12
6 1 5

Sample Output 1 Copy

Copy

3
1
7
11

For example, 77 has the properties \gcd(6,7)=1,\gcd(1,7)=1,\gcd(5,7)=1gcd(6,7)=1,gcd(1,7)=1,gcd(5,7)=1, so it is included in the set of integers satisfying the requirement.
On the other hand, 99 has the property \gcd(6,9)=3gcd(6,9)=3, so it is not included in that set.
We have three integers between 11 and 1212 that satisfy the condition: 11, 77, and 1111. Be sure to print them in ascending order.

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;

bool vis[N];

bool vis1[N];

int a[N];

int prime[N];

int ans[N];

int cnt;

int len;

int n, m;

set<int> se;

void get_prime() //线性筛法

{

for (int i = 2; i <= N; i++)

{

if (!vis[i])

prime[cnt++] = i;

for (int j = 0; prime[j] <= N / i; j++)

{

vis[i * prime[j]] = 1;

if (i % prime[j] == 0)

break;

}

}

}

void find() // 因式分解,求所有的质因数

{

for (int i = 0; i < n; i++)

{

int k = a[i];

for (int j = 0; prime[j] <= k / prime[j]; j++)

{

if (k % prime[j] == 0)

{

se.insert(prime[j]);

while (k % prime[j] == 0)

k = k / prime[j];

}

}

if (k > 1)

se.insert(k);

}

}

void solve()

{

scanf("%d%d", &n, &m);

int i, j, k, l;

for (i = 0; i < n; i++)

{

scanf("%d", &a[i]);

}

get_prime();

find();

for (auto &it : se) //利用埃式筛法的思想,去除所有质因数的倍数

{

if (it == 1)

continue;

for (j = it; j <= m; j += it)

vis1[j] = 1;

}

for (i = 1; i <= m; i++)

{

if (!vis1[i])

ans[len++] = i;

}

printf("%d\n", len);

for (i = 0; i < len; i++)

{

printf("%d\n", ans[i]);

}

}

signed main()

{

solve();

return 0;

}

Coprime AtCoder Beginner Contest 215相关推荐

  1. AtCoder Beginner Contest 215 G - Colorful Candies 2

    AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...

  2. AtCoder Beginner Contest 215 F - Dist Max 2

    AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi​,yi​),定义两点(xi,yi),(xj,yj)(x ...

  3. AtCoder Beginner Contest 215 E - Chain Contestant

    AtCoder Beginner Contest 215 E - Chain Contestant 给出一个只包括A~J的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...

  4. [AtCoder Beginner Contest 215] A-G题解

    文章目录 A - Your First Judge B - log2(N) C - One More aab aba baa D - Coprime 2 E - Chain Contestant F ...

  5. Panasonic Programming Contest (AtCoder Beginner Contest 195) 题解

    文章目录 A - Health M Death B - Many Oranges C - Comma D - Shipping Center E - Lucky 7 Battle F - Coprim ...

  6. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...

  7. AtCoder Beginner Contest 197 题解(A ~ F)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...

  8. AtCoder Beginner Contest 198 (A ~ F)题解

    目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...

  9. AtCoder Beginner Contest 204 F Hanjo 2

    AtCoder Beginner Contest 204 F Hanjo 2 H宽,W长的二维平面上,用1 * 1或者2 * 1的地砖来铺,要求铺满,求出方案数. 数据范围H <= 6, W & ...

最新文章

  1. python timer使用-关于定时器的两种使用方法
  2. 设计模式之_动态代理_03
  3. 超级马里奥代码_任天堂的源码泄露,揭示超级马里奥的前世之生
  4. h5如何上传文件二进制流_HTML5新特性之文件和二进制数据的操作
  5. 关键词SEO相关搜索/下拉框/优化系统/按天扣费系统全开源
  6. python web报表_python django框架 渲染和ajax表单提交周报表
  7. 数据仓库之元数据管理
  8. 用计算机录制声音让音质更好,如何用电脑录制电脑正在播放的内部声音?这个工具无需安装还免费...
  9. matlab找异步电机,基于Matlab的异步电动机仿真
  10. w ndows资源管理器无响应,windows资源管理器未响应
  11. Vue 项目API接口封装
  12. Jetpack:Room超详细使用踩坑指南!
  13. 超简单! 一个标签搞定跑马灯,纯css制作跑马灯效果
  14. 微信公众平台测试账号本地配置
  15. 翻译Guzzle摘要
  16. 利用DICOM文件实现2D与3D体素坐标之间的转换
  17. 电脑装机完没有efi_win7系统eFI引导从硬盘安装的操作方法
  18. 解读腾讯音乐Q3财报:营收上涨31% 音乐市场下半场战事即将开启?
  19. 《期权、期货及其他衍生产品》读书笔记(第五章:确定远期和期货价格)
  20. 调节阀各种特性气动调节阀如何存放

热门文章

  1. R语言数据处理 之 创建新变量
  2. Ublox GPS模块型号入门介绍
  3. ITOP4412 RFID RC522模块
  4. spss和matlab软件,MATLAB与SPSS进行多元回归分析的区别.pdf
  5. android多点触控的使用
  6. RabbitMQ交换机(扇出模式、直接模式)学习笔记
  7. 老牌系统:雨一直下win7主题
  8. 我天!中国科技原来有桎梏!道翰天琼认知智能机器人API平台接口为您揭秘-1。
  9. netty 简单demo
  10. asp.net不用服务器控件