Enlarge GCD(素数筛)
题意
删去最少的数,使gcd变大
题解
只要保留相同素数因子最多的数即可。
素数筛。
C++代码
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1.5e7+;
const int MAXM = 1.5e7+;
int Mark[MAXN];
int prime[MAXN]; int Prime(){
int tot = ;
memset(Mark,,sizeof(Mark));
Mark[] = ;
Mark[] = ;
for(int i = ; i < MAXN; i++){
if(Mark[i] == ){
prime[tot++] = i;
} for(int j = ; j < tot && prime[j] * i < MAXN ; j ++)
{
Mark[i * prime[j]] = ;
if(i % prime[j] == )
break;
}
}
return tot ;
} int a[],cnt[MAXN]; int main(){
int n ;
int tot = Prime();
cin >> n;
int g = ;
for(int i = ; i < n ; i++){
cin >> a[i];
g = __gcd(g , a[i]);
}
for(int i = ;i < n ; i++){
a[i] /= g;
for(int j = ; prime[j] * prime[j] <= a[i] ; ++j){
int p = prime[j];
if(a[i] % p == ) cnt[p]++;
while(a[i] % p == ) a[i]/= p;
}
if(a[i]!=) cnt[a[i]] ++;
}
int ans = n;
for(int i = ; i < MAXN; ++i){
ans = min(ans, n - cnt[i]);
}
if(ans == n) ans = -;
cout << ans << endl;
return ;
}
Enlarge GCD(素数筛)的更多相关文章
- CF 1047 C - Enlarge GCD [素数筛]
传送门:http://codeforces.com/contest/1047/problem/C 题意:给出n个数字,求最少删除几个数可以使剩下的数字的GCD大于n个数字的GCD 思路:最开始想的是先 ...
- BZOJ 2818 GCD 素数筛+欧拉函数+前缀和
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2818 题意:给定整数N,求1<=x,y<=n且Gcd(x,y)为素数的数对( ...
- Codeforces Round #511 (Div. 2)-C - Enlarge GCD (素数筛)
传送门:http://codeforces.com/contest/1047/problem/C 题意: 给定n个数,问最少要去掉几个数,使得剩下的数gcd 大于原来n个数的gcd值. 思路: 自己一 ...
- Codeforces Round #511 (Div. 2):C. Enlarge GCD(数学)
C. Enlarge GCD 题目链接:https://codeforces.com/contest/1047/problem/C 题意: 给出n个数,然后你可以移除一些数.现在要求你移除最少的数,让 ...
- codeforces 414A A. Mashmokh and Numbers(素数筛)
题目链接: A. Mashmokh and Numbers time limit per test 1 second memory limit per test 256 megabytes input ...
- Help Hanzo (素数筛+区间枚举)
Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000). (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...
- 素数筛 poj 2689
素数筛 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; ...
- BestCoder Round #85 hdu5778 abs(素数筛+暴力)
abs 题意: 问题描述 给定一个数x,求正整数y,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次. 输入描述 第一行输入一个整数T 每组数据有一行,一个整 ...
- poj 3048 Max Factor(素数筛)
这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个 ...
随机推荐
- C# 泛型 new{ }??? //加new 和不加new 有什么不同? new() 约束
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- (77)一文了解Redis
为什么我们做分布式使用Redis? 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.这里对 ...
- Spring Boot教程(十九)RESTful API单元测试
下面针对该Controller编写测试用例验证正确性,具体如下.当然也可以通过浏览器插件等进行请求提交验证. @RunWith(SpringJUnit4ClassRunner.class) @Spri ...
- Java数据结构之排序---插入排序
插入排序的基本介绍: 插入排序是对想要排序的序列以插入的方式寻找该元素的适当的位置,从而达到排序的目的. 插入排序的基本思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时,有序表只有一个元素 ...
- Mac securecrt 破解版安装
破解一 1.先链接:https://pan.baidu.com/s/1-1nu4eRf7BmuLg5MtlCRvw 密码:30pq 默认下载到了当前用户的”下载”目录中 在”Finder”中 ...
- chrome 调试
https://developers.google.com/web/tools/chrome-devtools/javascript/step-code step over next function ...
- linux修改时区为东八时区,北京时间,上海时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo "Asia/Shanghai" > /etc/tim ...
- 终于, Delphi XE2 携带 GDI+ 库了
终于, Delphi XE2 携带 GDI+ 库了 使用了较早的 http://www.progdigy.com uses Winapi.GDIPAPI, Winapi.GDIPOBJ{, Winap ...
- mysql 批量删表
Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE ...
- Jedis源码浅析
1.概述 Jedis是redis官网推荐的redis java client,代码维护在github https://github.com/xetorthio/jedis. 本质上Jedis帮我们封装 ...