51nod1184 第N个质数
如题。$n \leq 1e9$。
方法零:二分,然后洲阁筛。要魔改一下的洲阁筛。跑得慢。卡卡能过。没意思。
//#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
//#include<map>
#include<math.h>
//#include<time.h>
//#include<complex>
#include<algorithm>
using namespace std; #define LL long long
LL n,mzz=;
#define maxn 640011
#define maxm 10000011
int prime[maxm/],sp[maxm],lp; bool notprime[maxm];
void pre()
{
lp=;
for (int i=;i<=mzz;i++)
{
if (!notprime[i]) {prime[++lp]=i;}
sp[i]=sp[i-]+!notprime[i];
for (int j=,tmp;j<=lp && 1ll*prime[j]*i<=mzz;j++)
{
notprime[tmp=i*prime[j]]=;
if (i%prime[j]); else break;
}
}
} LL G(int i,LL j)
{
if (i==) return (j+)>>;
if (j<=prime[i]) return ;
if (j<=mzz && j<=(LL)prime[i]*prime[i]) return sp[j]+-i;
return (G(i-,j)-G(i-,j/prime[i]));
} LL mg(LL n) {return G(lp,n);} LL calc(LL n)
{
if (n<=mzz) return sp[n];
lp=; for (;(LL)prime[lp]*prime[lp]<=n;lp++);
return mg(n)-+sp[prime[lp]];
} int q;
int main()
{
scanf("%d",&q); pre();
LL L=,R=;
if (q>=) L=; else R=;
if (q>=) L=; else R=;
if (q>=) L=; else R=;
if (q>=) L=; else R=;
if (q>=) L=; else R=;
while (L<R)
{
LL mid=(L+R)>>,tmp;
if ((tmp=calc(mid))>=q) R=mid;
else L=mid+;
}
printf("%lld\n",L);
return ;
}
51nod1184 第N个质数的更多相关文章
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
- [LeetCode] Count Primes 质数的个数
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...
- 为什么质数检验到 N的开方 就可以结束了
以为所有N的除数都是以根号N为轴对称的. 例如16的开方为4: 16%1 == 0 则1 与 16 都是16的除数. 16%2 == 0 则2 与 8 都是16的除数. 16%4 ==0 则4 为16 ...
- 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法
今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...
- PHP面试题之实现输出100以内的质数
最近求职时的其中一道面试题: 求100之内的质数 <? //求100以内质数 for ($i = 1; $i <= 100; $i++) { $k = 0; for ($j = 1; $j ...
- shell统计指定范围内的所有质数以及它们的和
#!bin/bash a= $) ;do n= $x);do ];then n=$[$n+] fi done ];then { echo -n -e "$x\t" sum=$[$s ...
- CNUOJ 0486 800401反质数
难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g ...
- NOI 1.5 44:第n小的质数
---恢复内容开始--- 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 方法1:合数一定可以表示成一个比它小的 ...
- 求第N个质数算法
用python求从1开始第1000个质数? 质数:只能被1和它本身整除的数.那好,我们开始写程序(一个小算法). def calc_prime(prime,num): i,gab=7,2 while ...
随机推荐
- AngularJS 表单验证手机号(非必填)
代码: <form ng-app="myApp" ng-controller="validateCtrl" name="myForm" ...
- 浏览器报错问题解决:Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight respons
FAQ: Failed to load http://www.erpshop.com/index.php: Request header field Content-Type is not allow ...
- 10g集群启动顺序
1. 首先, /etc/inittab(不同平台文件名可能不同),文件中的下面3行被调用. h1:35:respawn:/etc/init.d/init.evmd run >/dev/null ...
- (转)使用JDK中的Proxy技术实现AOP功能
http://blog.csdn.net/yerenyuan_pku/article/details/52863780 AOP技术在企业开发中或多或少都会用到,但用的最多的大概就是做权限系统时,在做权 ...
- Elasticsearch学习(二)————搜索
Elasticsearch1.query string search1.1.搜索全部// 1. GET http://ip:9200/test/test/_search 结果: { "too ...
- python基础一 day5 复习
bytes类型默认编码方式是utf-8和gbk,反正不是unicode strn内部的编码方式是Unicode range相当于只有一次,第一次之后相当于一个有序列表.range顾头不 ...
- largest rectangle in histogram leetcode
Given n non-negative integers representing the histogram's bar height where the width of each bar is ...
- CNN完成mnist数据集手写数字识别
# coding: utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data d ...
- PHP16 PHP访问MySQL
学习要点 PHP访问MySQL配置 PHP访问MySQL函数介绍 足球赛程信息管理 PHP访问MySQL配置 PHP.ini配置文件确认以下配置已经打开 extension=php_mysql.dll ...
- Linux-01 虚拟机Linux的安装
学习要点 虚拟机VMware Workstation 11.0 CentOS6.5的安装 Linux简介 Linux 一种免费开源的操作系统 常作为服务器的操作系统使用 基本思想:一切都是文件 常用发 ...