做这道题之前首先要掌握的是线性筛的模板

附上题目链接

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】的更多相关文章

  1. 素数路(prime) (BFS)

    问题 C: 素数路(prime) 时间限制: 1 Sec  内存限制: 64 MB提交: 8  解决: 5[提交][状态][讨论版] 题目描述 已知一个四位的素数,要求每次修改其中的一位,并且要保证修 ...

  2. Semi-Prime(半素数)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2723 Semi-Prime Time Limit: 2 Seconds   ...

  3. iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):2 H264数据写入文件

    本文档为iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述续篇,主要描述: CMSampleBufferRef读取实际数据 序列参数集(Sequence Para ...

  4. iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述

    本文档尝试用Video Toolbox进行H.265(HEVC)硬件编码,视频源为iPhone后置摄像头.去年做完硬解H.264,没做编码,技能上感觉有些缺失.正好刚才发现CMFormatDescri ...

  5. 素数路(prime)

    素数路(prime) 题目描述 已知一个四位的素数,要求每次修改其中的一位,并且要保证修改的结果还是一个素数,还不能出现前导零.你要找到一个修改数最少的方案,得到我们所需要的素数. 例如把1033变到 ...

  6. 【C++ 模板迭代器实例/半素数】

    题目:判断一个数是不是两个素数的乘积,是输出YES,不是输出NO.数据范围为2-1000000. 为了解决这个问题,我们继续使用STL——vector & set,分别用来存储素数和半素数.为 ...

  7. stdafx.h是什么用处, stdafx.h、stdafx.cpp的作用

    http://blog.csdn.net/songkexin/article/details/1750396 stdafx.h头文件的作用 Standard Application Fram Exte ...

  8. params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render

    params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render

  9. 安装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 ...

随机推荐

  1. go 学习笔记(4) package

    package name 尽量与目录名称一样 package name: 表示代码文件所属的包

  2. docker-compose命令使用说明

    Commands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file conf ...

  3. git重置账号密码

    1.打开控制面板(快捷打开win+R,输入control) 2.点击打开用户账户 3.点击凭据管理器 4.点击windows凭据删除你的git凭据即可

  4. 创建Core项目使用IdentityServer4

    本文主要参照https://www.bilibili.com/video/av42364337/?p=4 英文帮助文档:https://identityserver4.readthedocs.io/e ...

  5. .net core使用ocelot---第四篇 限流熔断

    简介 .net core使用ocelot---第一篇 简单使用 .net core使用ocelot---第二篇 身份验证 .net core使用ocelot---第三篇 日志记录 前几篇文章我们陆续介 ...

  6. Python接口自动化基础---token鉴权

    有些登录使用cookie,有些登录需要token验证,token传参一般有两种形式,一种是在请求头中,一种是使用URL传参 这里举例说明一下请求头中的token方式: #登录 param1={'use ...

  7. flutter AnimationBuilder

    class BuilderPage extends StatefulWidget { @override State<StatefulWidget> createState() { // ...

  8. JML规格编程系列——OO Unit3分析和总结

    本文是BUAA OO课程Unit3在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.主要包含JML相关梳理.SMT Solver验证.JML单元 ...

  9. iOS 播放系统自带铃声

    播放声音代码例子 https://github.com/baitongtong/git-.git 给一个国外网址,苹果系统铃声以及自定义铃声免登陆免费下载:http://www.zedge.net/r ...

  10. mac上使用gitlab拉项目报错Permissions 0644 for ...

    解决办法:执行命令sudo chmod 0600 /Users/***(电脑名)/.ssh/id_rsa