牛客 最小互质数(筛法求解)
题目
代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e6;
int vis[N];
int main()
{int n;cin>>n;int flag=0;//记录是否有1 for(int i=0;i<n;i++){int x;cin>>x;if(x==1){flag=1;continue;}for(int j=2;j*j<=x;j++){while(x%j==0){x/=j;vis[j]=1;}}if(x>1) vis[x]=1;}if(!flag) cout<<"1";//如果没出现1则答案为1else{for(int i=2;i<=N;i++){if(!vis[i]){cout<<i<<endl;return 0;}else{//若i出现过则含有i的数全部标记 for(int j=2;j*i<=N;j++){vis[i*j]=1;}}}} return 0;
}
总结
首先判断输入的数中是否存在1,如果没有1的话,1就是与这些数都互质的最小数
若没有1,则逐个将输入的数分解质因数,并把质因数进行标记。最后从小到大遍历vis数组,如果数没标记过则直接输出,出现过的话则在范围内把所有包含它的数标记一遍。
虽然本题输入的数最大是1e5,但是实际存在的答案会大于1e5,所以我把vis数组开到了1e6,与1~1e5所有数都互质的数显然应该是1e5后的第一个质数
这题需要一点点数学思维,刚开始做没反应过来
牛客 最小互质数(筛法求解)相关推荐
- 牛客假日团队赛8:H.Cell Phone Network(最小支配集)
链接:https://ac.nowcoder.com/acm/contest/1069/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...
- 牛客题霸 [ 旋转数组的最小数字] C++题解/答案
牛客题霸 [ 旋转数组的最小数字] C++题解/答案 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. NOT ...
- 牛客题霸 [拼接所有的字符串产生字典序最小的字符串] C++题解/答案
牛客题霸 [拼接所有的字符串产生字典序最小的字符串] C++题解/答案 题目描述 给定一个字符串的数组strs,请找到一种拼接顺序,使得所有的字符串拼接起来组成的字符串是所有可能性中字典序最小的,并返 ...
- 牛客题霸 [数组中未出现的最小正整数] C++题解/答案
牛客题霸 [数组中未出现的最小正整数] C++题解/答案 题目描述 给定一个无序数组arr,找到数组中未出现的最小正整数 例如arr = [-1, 2, 3, 4].返回1 arr = [1, 2, ...
- 牛客题霸 [矩阵的最小路径和] C++题解/答案
牛客题霸 [矩阵的最小路径和] C++题解/答案. 题目描述 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的 ...
- 牛客题霸 [ 最小的K个数] C++题解/答案
牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...
- 【牛客 - 369F】小D的剑阵(最小割建图,二元关系建图,网络流最小割)
题干: 链接:https://ac.nowcoder.com/acm/contest/369/F 来源:牛客网 题目描述 现在你有 n 把灵剑,其中选择第i把灵剑会得到的 wiw_iwi 攻击力. ...
- 牛客练习赛30: D. 消消乐(二分匹配+输出最小点覆盖)
链接:https://ac.nowcoder.com/acm/contest/216/D 来源:牛客网 题目描述 r神在和小b比赛玩一个名为"消消乐"的游戏,在一个n*m的棋盘上, ...
- 牛客小白月赛63->GCPC总决赛,递归方法求解
链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 GCPC 总决赛要来了,DarknessCatcher 的学校和 yxlxszx 的学校分别有 nnn 支队伍,DarknessC ...
最新文章
- [译]RxJS文档04——Observer 观察者
- 系统安装,重装与优化:chapter2 硬盘的分区与格式化
- 20181127-1 附加作业 软件工程原则的应用实例分析
- __init、__initdata和__exit、__exitdata
- 《剑指offer》-合并两个排序的链表
- Aqua - Mac OS X平台的用户界面(user interface)
- Nginx(2)之nginx作用简介
- 8款主流Scrum敏捷开发工具评测,建议先马后看!
- s一般怎么称呼自己的m_英文信的开头和结尾,怎么写才不会出错?
- 用VBA程序开发Excel工具
- Android Studio WiFi 之 获取 WiFi 名称、IP、Mac
- python微信爬取教程_python爬取微信文章方法
- WiFi安全现状,70%的WiFi可被快速破解
- 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
- CA认证的原理和流程以及https完整通信过程
- 名词解释bootloader
- nextcloud云搭建及教程转接
- 韶关学院计算机专业录取分数线,韶关学院录取分数线2021是多少分(附历年录取分数线)...
- 智能家居真正爆发:还需要一场普及战
- 榆林三中2021年高考成绩查询,2021年榆林高中学校排名一览表,榆林比较好的高中学校排名...
热门文章
- 互融云供应链金融系统4.0 来了!系统又增哪些亮点?
- HashMap面试题,看这一篇就够了!
- Python的整数与浮点数计算
- BZOJ2277: [Poi2011]Strongbox
- ITK——5. 利用ITK自身的多线程加速filter计算
- === 和 == 的区别
- objection 基础知识
- python数据挖掘与入门实践(2.2)用sciket-learn估计器分类
- bochs在windows下的使用
- 百度云提速方法 免费+非破解+不下载软件