Coprime AtCoder Beginner Contest 215
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相关推荐
- AtCoder Beginner Contest 215 G - Colorful Candies 2
AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...
- 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 ...
- AtCoder Beginner Contest 215 E - Chain Contestant
AtCoder Beginner Contest 215 E - Chain Contestant 给出一个只包括A~J的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...
- [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 ...
- 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 ...
- AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...
- AtCoder Beginner Contest 197 题解(A ~ F)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...
- AtCoder Beginner Contest 198 (A ~ F)题解
目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...
- AtCoder Beginner Contest 204 F Hanjo 2
AtCoder Beginner Contest 204 F Hanjo 2 H宽,W长的二维平面上,用1 * 1或者2 * 1的地砖来铺,要求铺满,求出方案数. 数据范围H <= 6, W & ...
最新文章
- python timer使用-关于定时器的两种使用方法
- 设计模式之_动态代理_03
- 超级马里奥代码_任天堂的源码泄露,揭示超级马里奥的前世之生
- h5如何上传文件二进制流_HTML5新特性之文件和二进制数据的操作
- 关键词SEO相关搜索/下拉框/优化系统/按天扣费系统全开源
- python web报表_python django框架 渲染和ajax表单提交周报表
- 数据仓库之元数据管理
- 用计算机录制声音让音质更好,如何用电脑录制电脑正在播放的内部声音?这个工具无需安装还免费...
- matlab找异步电机,基于Matlab的异步电动机仿真
- w ndows资源管理器无响应,windows资源管理器未响应
- Vue 项目API接口封装
- Jetpack:Room超详细使用踩坑指南!
- 超简单! 一个标签搞定跑马灯,纯css制作跑马灯效果
- 微信公众平台测试账号本地配置
- 翻译Guzzle摘要
- 利用DICOM文件实现2D与3D体素坐标之间的转换
- 电脑装机完没有efi_win7系统eFI引导从硬盘安装的操作方法
- 解读腾讯音乐Q3财报:营收上涨31% 音乐市场下半场战事即将开启?
- 《期权、期货及其他衍生产品》读书笔记(第五章:确定远期和期货价格)
- 调节阀各种特性气动调节阀如何存放