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

附上题目链接

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. Online Hard Example Mining 理解

    Definition: Online Hard Example Mining (OHEM) is a way to pick hard examples with reduced computatio ...

  2. JavaNetty

    Netty的简单使用: import io.netty.bootstrap.Bootstrap; import io.netty.buffer.Unpooled; import io.netty.ch ...

  3. BUAA_OO第三单元总结性博客作业——JML

    一.JML 在第三单元的面向对象课程中我们第一次接触了JML语言以及基于JML规范的规格化设计.在之前一系列关于面向对象思想的学习认识中,我们知道了Java是一种面向对象的语言,面向对象思想的一个重要 ...

  4. Wenaox 一款轻量性能好的微信小程序状态管理库

    感慨一下!!! 从开始开发 wenaox 从开始到现在,,时不时更新一下,改一改 bug,却发现已经快 1 年了 orz 虽然很少人用 hhh,但偶尔也会有人提一些问题,我就知道还有人用的~ 感兴趣的 ...

  5. gitlab异地备份并验证MD5值

    最近公司发生了蛮多事情的,唉,咱也不管问啊,好好干活吧 需求 把gitlab的备份文件异地备份一份,备份无论失败还是成功通知某邮箱 实现思路 先rsync文件过去,判断rsync这个步骤有没有成功,失 ...

  6. C语言编译器

    我们分两部分介绍C语言的编译器,分别是桌面操作系统和嵌入式操作系统. 桌面操作系统 对于当前主流桌面操作系统而言,可使用 Visual C++.GCC 以及 LLVM Clang 这三大编译器. Vi ...

  7. nginx mirror/post_action+gor实现https流量复制

    关于gor: 参考: https://www.cnblogs.com/jinjiangongzuoshi/p/11773070.html https://github.com/buger/gorepl ...

  8. 一个关于integer表示范围的问题

    1:在做字符串parse为integer 类型市,一直出现问题就是当我parse “”2851663837”报错, 但是当我parse “1417585794”  可以.原来是超出integer 类型 ...

  9. tp5 隐藏index.php

    原文——>链接 官方默认的.htaccess文件 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Rewri ...

  10. 【转】MCU厂商简介

    国内MCU市场已达360亿元,2020年将超500亿元.2016年,国内MCU市场已达360亿元,同比增长达11%,而据IC Insights预测,随着中国大陆汽车电子和物联网领域的快速发展,对MCU ...