zoj 2723 Semi-Prime(素筛打表+搜索优化)
题目链接:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2723
题目描述:
Prime Number Definition
An integer greater than one is called a prime number if its only
positive divisors (factors) are one and itself. For instance, 2, 11, 67,
89 are prime numbers but 8, 20, 27 are not.
Semi-Prime Number Definition
An integer greater than one is called a semi-prime number if it can be
decompounded to TWO prime numbers. For example, 6 is a semi-prime number
but 12 is not.
Your task is just to determinate whether a given number is a semi-prime number.
Input
There are several test cases in the input. Each case contains a single integer N (2 <= N <= 1,000,000)
Output
One line with a single integer for each case. If the number is a semi-prime number, then output "Yes", otherwise "No".
Sample Input
3
4
6
12
Sample Output
No
Yes
Yes
No
/*问题 判断输入的n(n的范围是2到100 0000)是否为半素数
解题思路 先用素筛法建立一张[2,50 0000]的素数表放在数组里,再将素数存进向量里,然后计算出2到100 0000的半素
数表放在set集合里后查表即可*/
#include <cstdio>
#include <set>
#include <cmath>
#include <vector>
using namespace std; int isPrim[]; void prim(int n); int main()
{
prim(); vector<int> prim_vec;//对于未知大小的数据来说非常方便
int i;
for(i=;i<=;i++){
if(isPrim[i])
prim_vec.push_back(i);
} set<int> prim_set;//查询起来非常快速、方便
int j,p;
for(i=;i<prim_vec.size();i++){
for(j=;j<prim_vec.size();j++){
if( (p = prim_vec[i]*prim_vec[j]) <=)
prim_set.insert(p);
else
break;//一种优化方法,对于有顺序的数据
}
} int n;
set<int>::iterator it;
while(scanf("%d",&n) != EOF)
{
it=prim_set.find(n);
if(it != prim_set.end())
printf("Yes\n");
else
printf("No\n");
}
return ;
} void prim(int n)
{
int i,j,k; for(i=;i<=n;i++)
isPrim[i]=;//全部初始化为1,假定全是素数
isPrim[]=isPrim[]=;//0和1非素数 k=(int)sqrt(n);
for(i=;i<=k;i++){
if(isPrim[i]){
for(j=*i;j<=n;j+=i)
isPrim[j]=;
}
}
/*
int count=0;
for(i=2;i<=n;i++){
if(isPrim[i])
count++;//记录50 0000以内的素数有41538个,验证素筛写的对不对
}
printf("%d\n",count);
*/
}
zoj 2723 Semi-Prime(素筛打表+搜索优化)的更多相关文章
- ACdream 1112 Alice and Bob(素筛+博弈SG函数)
Alice and Bob Time Limit:3000MS Memory Limit:128000KB 64bit IO Format:%lld & %llu Submit ...
- Bi-shoe and Phi-shoe(欧拉函数/素筛)题解
Bi-shoe and Phi-shoe Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi-shoe ...
- ZOJ 2723 Semi-Prime ||ZOJ 2060 Fibonacci Again 水水水!
两题水题: 1.如果一个数能被分解为两个素数的乘积,则称为Semi-Prime,给你一个数,让你判断是不是Semi-Prime数. 2.定义F(0) = 7, F(1) = 11, F(n) = F( ...
- HDU 5317 RGCDQ (数论素筛)
RGCDQ Time Limit: 3000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Submit Status ...
- WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实 ...
- Yii 1开发日记 -- 后台搜索功能下拉及关联表搜索
Yii 1 实现后台搜索,效果如下: 一. 下拉搜索: 1.模型中和常规的一样 if (isset($_GET['agency']['status']) && $_GET['agenc ...
- 追踪app崩溃率、事件响应链、Run Loop、线程和进程、数据表的优化、动画库、Restful架构、SDWebImage的原理
1.如何追踪app崩溃率,如何解决线上闪退 当 iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈 跟踪信 ...
- mysql中对数据库的每个表执行优化的存储过程
说明:此处为<高性能mysql(第二版)>中的示例代码,除了数据库名 其他未经更改.仅供学习及参考 对数据库的每个表执行优化的存储过程 CREATE PROCEDURE `inventor ...
- MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)
殊不知,在N年前被奉为"圣经"的数据库设计3范式早就已经不完全适用了.这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用. 由于MySQL数据库是基于行(Ro ...
随机推荐
- AngularJS 控制器 Live Dom
控制器的作用是在$scope对象上创建属性和方法,控制器的作用域是$scope,所以作用域是针对控制器来讲的.另外,控制器实例不是单例,每次都会重新实例化,不像服务是单例的. 其是注册在模块上的,如 ...
- List of RGBD datasets
This is an incomplete list of datasets which were captured using a Kinect or similar devices. I init ...
- 使用PerfView监测.NET程序性能(三):分组
在上一篇博客中,我们通过Perfview帮助文件中自带的代码来简单使用了Perfview,了解了基本操作.现在来看看Perfview中的分组操作(Grouping).分组功能都旨将记录到的各种函数调用 ...
- 工作随笔——获取当前Java程序PID
小知识,记录下: JVM:1.8 // spring boot 中可以使用 String pid = ManagementFactory.getRuntimeMXBean().getSystemPro ...
- C# 简述Action与function
Action 与 Func是.NET类库中增加的内置委托,以便更加简洁方便的使用委托. 最初使用委托时,均需要先定义委托类型,然后定义一个符合委托类型签名的函数,在调用前,需声明并创建委托对象,将指定 ...
- .net core 分布式配置中心
github地址 https://github.com/wangchengqun/ratel 配置文件 数据同步端口 Server: ip: 127.0.0.1 port: 7890 浏览器访问 ht ...
- sharepoint support ashx file
Hello, I did the steps from the tutorial you are using. I have received the same error when I did no ...
- QT中的一些信号
QLineEdit: 通过改变QLineEdit的echoMode(),可以设置其属性,比如以密码的形式输入. 文本的长度可以由maxLength()限制,可以通过使用validator()或者inp ...
- kls与flag(map)
题目传送门 这道题还挺搞笑的,\(map\)常数贼大还是把它水过了. 可以发现这道题求的是 \((j>i)j-i=h_i+h_j,j-i=|h_i-h_j|\)的对数. 那么显然,因为高度大于\ ...
- [海外干货] BlackHat 2017 首日议题的所有 PPT以及材料
今年是 Black Hat 举办的第 20 个年头,高温酷暑也挡不住全世界黑客和安全人员奔赴拉斯维加斯的热情.毕竟这可是一年一度的盛大狂欢啊.今年的 BHUSA 从美国东部时间时间 7 月 22 日( ...