题解 UVA11105 【H-半素数 Semi-prime H-numbers】
做这道题之前首先要掌握的是线性筛的模板
附上题目链接
https://www.luogu.org/problem/P3383
首先这道题目的范围有些特殊必须是% 4 == 1的数才行
所以可以这样
直接把线性筛的模板拿过来将里面的每个数挨个枚举,每一次的++i 或者++j可以改为 += 4
这样每一次枚举的就都是“H数 ”了
然后不考虑“H数 ”之外的数,用这里面的数进行素数筛选 将H-素数都筛出来
在最后的时候两重循环枚举素数将他们的乘积标注出来最后 剩下的H数就都会是H-合数了
完整代码
#include<iostream>
#include<cstdio>
#include<cmath> using namespace std;
const int Max = ;
const int M = ;
int ans[Max];
bool use[Max];
bool vis[Max];
int prime[Max];
int a[Max];
int js = ;
int main()
{
int tot = ;
for(int i = ;i <= M;i += )
{
if(use[i] == true)continue;
prime[++ tot] = i;
for(int j = ;j * i <= M;j += )//线性筛模板晒出H-素数
use[i * j] = true;
}
for(int i = ;i <= tot;i ++)
{
for(int j = ;j <= tot;j ++)//双重循环枚举
{
if(prime[i] * prime[j] > M)break;//大于最大的范围break掉这一层循环
vis[prime[i] * prime[j]] = ;//标记出来
}
}
for(int i = ;i <= M;++ i)
{
ans[i] += ans[i - ];//先继承前面H-合数的个数
if(vis[i] == true)//如果当前的数也是H-合数
ans[i] ++;//计数器累加
}
int n;
while(scanf("%d",&n))
{
if(n == )break;
else
cout<<n<<" "<<ans[n]<<endl;
}
return ;
}
题解 UVA11105 【H-半素数 Semi-prime H-numbers】的更多相关文章
- 素数路(prime) (BFS)
问题 C: 素数路(prime) 时间限制: 1 Sec 内存限制: 64 MB提交: 8 解决: 5[提交][状态][讨论版] 题目描述 已知一个四位的素数,要求每次修改其中的一位,并且要保证修 ...
- Semi-Prime(半素数)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2723 Semi-Prime Time Limit: 2 Seconds ...
- iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):2 H264数据写入文件
本文档为iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述续篇,主要描述: CMSampleBufferRef读取实际数据 序列参数集(Sequence Para ...
- iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述
本文档尝试用Video Toolbox进行H.265(HEVC)硬件编码,视频源为iPhone后置摄像头.去年做完硬解H.264,没做编码,技能上感觉有些缺失.正好刚才发现CMFormatDescri ...
- 素数路(prime)
素数路(prime) 题目描述 已知一个四位的素数,要求每次修改其中的一位,并且要保证修改的结果还是一个素数,还不能出现前导零.你要找到一个修改数最少的方案,得到我们所需要的素数. 例如把1033变到 ...
- 【C++ 模板迭代器实例/半素数】
题目:判断一个数是不是两个素数的乘积,是输出YES,不是输出NO.数据范围为2-1000000. 为了解决这个问题,我们继续使用STL——vector & set,分别用来存储素数和半素数.为 ...
- stdafx.h是什么用处, stdafx.h、stdafx.cpp的作用
http://blog.csdn.net/songkexin/article/details/1750396 stdafx.h头文件的作用 Standard Application Fram Exte ...
- params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
- 安装nginx环境(含lua)时遇到报错ngx_http_lua_common.h:20:20: error: luajit.h: No such file or directory的解决
下面是安装nginx+lua环境时使用的相关模块及版本,ngx_devel_kit和lua-nginx-module模块用的都是github上最新的模块.并进行了LuaJIT的安装. #Install ...
随机推荐
- quartz2.3.0(十五)执行、暂停、继续执行、清除,花式操作数据库中持久化的job任务
#################################################################################################### ...
- 「PKUWC2018/PKUSC2018」试题选做
「PKUWC2018/PKUSC2018」试题选做 最近还没想好报THUSC还是PKUSC,THU发我的三类约(再来一瓶)不知道要不要用,甚至不知道营还办不办,协议还有没有用.所以这些事情就暂时先不管 ...
- HTML5单页框架View.js介绍
什么是单页应用单页应用,是指将用户视觉上的多个页面在技术上使用一个载体来实现的应用. 换句话来讲,用户视觉效果,与技术实现的载体,并不是一定要一一对应的.采取哪种技术方案,取决于产品设计.技术组成以及 ...
- Socket HttpListen
HttpListener sSocket = new HttpListener(); sSocket.Prefixes.Add("http://127.0.0.1:8080/"); ...
- fatal:'origin' does not appear to be a git repository fatal:Could not read from remote repository
天gitlab中遇到的问题: 当 git push origin branch_name时遇到报错如下: fatal:'origin' does not appear to be a git repo ...
- centOS学习part7:Oracle开机自启配置
0 上一章(http://www.cnblogs.com/souvenir/p/3884904.html)我们用了很多时间以及很长的篇幅来介绍oracle的整个安装过程,希望对大家用所帮助.oracl ...
- python3 提示sqlite模块不存在
首先yum install sqlite-devel -y 然后重装下python3(一定要重装)# cd Python-3.4.2# ./configure --prefix=/usr/local/ ...
- O - Can you find it?(二分查找)
O - Can you find it? Time Limit:3000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64 ...
- MYSQL5.7.24编译安装
1.解压源代码包 #tar zxvf mysql-boost-8.0.17.tar.gz 2.安装依赖包 #yum -y install gcc gcc-c++ ncurses ncurses-dev ...
- C++(三十五) — 运算符重载
运算符重载的实质:函数重载.除了增加一个关键字 operator 外,与函数重载没有区别,都是通过该类的某个对象来访问重载运算符. (1)重载运算符时,运算符运算顺序和优先级不变,操作数个数不变: ( ...