对于$a^b$,如果$b=2$,那么在$[\sqrt{n},\sqrt{n}+k\log k]$内必定能找到$k$个质数作为$a$。

筛出$n^{\frac{1}{4}}$内的所有质数,暴力枚举所有落在该区间内的倍数,将其筛掉,即可判断每个数是否是质数。

然后以最大的质数的平方作为上界,枚举更大的$a$和$b$,这里方案数指数级下降,故暴力即可。

最后排序输出第$k$小的值即可。

时间复杂度$O(n^{\frac{1}{3}}+k\log^2k)$。

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cmath>
  4. using namespace std;
  5. typedef long long ll;
  6. const int N=1050010;
  7. ll n,lim,t,o,b[66],q[N*2];int cnt,k,m,i,j,a[66],p[N],tot;bool v[N],vis[N*2];
  8. inline ll pow(ll a,int b){
  9. ll t=1;
  10. while(b--){
  11. if(a>lim/t)return lim+1;
  12. t*=a;
  13. }
  14. return t;
  15. }
  16. inline ll powfast(ll a,int b){ll t=1;for(;b;b>>=1,a*=a)if(b&1)t*=a;return t;}
  17. void sieve(ll n){
  18. int i,j;
  19. for(tot=0,i=2;i<=n;i++){
  20. if(!v[i])p[tot++]=i;
  21. for(j=0;j<tot&&i*p[j]<=n;j++){
  22. v[i*p[j]]=1;
  23. if(i%p[j]==0)break;
  24. }
  25. }
  26. }
  27. inline void check(int x){for(ll i=max(t/x*x,2LL*x);i<=lim;i+=x)if(i>=t)vis[i-t]=1;}
  28. int main(){
  29. scanf("%lld%d",&n,&k);
  30. t=max((ll)sqrt(n)-10,2LL);
  31. while(t*t<=n)t++;
  32. sieve((ll)sqrt(lim=t+max(k,10)*21)+5);
  33. for(i=0;i<tot;i++)check(p[i]);
  34. for(o=t;o<=lim&&cnt<k;o++)if(!vis[o-t])q[++cnt]=o*o;
  35. lim=q[cnt];
  36. for(i=3;;a[++m]=i++)if((1LL<<i)>lim)break;
  37. for(b[1]=2;(b[1]+1)*(b[1]+1)*(b[1]+1)<=lim;b[1]++);
  38. for(i=2;i<=m;i++)for(b[i]=b[i-1];pow(b[i],a[i])>lim;b[i]--);
  39. sieve(max(b[1],1LL*a[m]));
  40. for(i=1;i<=m;i++)if(!v[a[i]]){
  41. for(j=0;j<tot&&powfast(p[j],a[i])<=n;j++);
  42. for(;j<tot&&p[j]<=b[i];j++)q[++cnt]=powfast(p[j],a[i]);
  43. }
  44. sort(q+1,q+cnt+1);
  45. return printf("%lld",q[k]),0;
  46. }

  

BZOJ3070 : [Pa2011]Prime prime power 质数的质数次方的更多相关文章

  1. 51nod 1181 质数中的质数(质数筛法)

    题目链接:51nod 1181 质数中的质数(质数筛法) #include<cstdio> #include<cmath> #include<cstring> #i ...

  2. 求n以内的质数(质数的定义:在大于1的自然数中,除了1和它本身意外,无法被其他自然数整除的数)

    思路: 1.(质数筛选定理)n不能够被不大于根号n的任何质数整除,则n是一个质数2.除了2的偶数都不是质数代码如下: /** * 求n内的质数 * @param int $n * @return ar ...

  3. 51 nod 1181 质数中的质数(质数筛法)

    1181 质数中的质数(质数筛法) 如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的 ...

  4. [51NOD1181]质数中的质数(质数筛法)(欧拉筛)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1181 思路:欧拉筛出所有素数和一个数的判定,找到大于n的最小质 ...

  5. 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法

    今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...

  6. (数论 欧拉筛法)51NOD 1181 质数中的质数(质数筛法)

    如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数.例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数.现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用 ...

  7. 【记忆化搜索】Happy Happy Prime Prime

    题目描述 RILEY VASHTEE: [reading from display] Find the next number in the sequence:313 331 367 ...? Wha ...

  8. Project Euler:Problem 87 Prime power triples

    The smallest number expressible as the sum of a prime square, prime cube, and prime fourth power is ...

  9. Project Euler 87 :Prime power triples 素数幂三元组

    Prime power triples The smallest number expressible as the sum of a prime square, prime cube, and pr ...

随机推荐

  1. JavaScript 高级程序设计 第二版

    function outputNumbers(count) {     (function () {         for (var i =0;i < count; i++) {        ...

  2. 纯css3实现的switch开关按钮

    效果如图 <p> <label><input class="mui-switch mui-switch-anim" type="checkb ...

  3. 绘制ROC曲线

    什么是ROC曲线 ROC曲线是什么意思,书面表述为: "ROC 曲线(接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表." 好吧,这很不直观.其实就是一个二维曲线 ...

  4. C#矩阵求逆

    来源:http://zhidao.baidu.com/link?url=DiqAbq9YUYn3z7QjxGGoF0PLZwN-Y9ecqKB7Gy38JWRD1riMIYukVKXKq88pxtWL ...

  5. Hadoop的namenode的管理机制,工作机制和datanode的工作原理

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  6. Zabbix 3.2.6通过SNMP和iDRAC监控DELL服务器

    https://www.cnblogs.com/saneri/p/7772641.html

  7. 【bzoj1264】[AHOI2006]基因匹配Match 树状数组

    题解: 一道比较简单的题目 容易发现状态数只有5*n个 而转移需要满足i1<i2;j1<j2 那么很明显是二维平面数点 暴力一点就是二维树状数组+map 5nlog^3 比较卡常 但是注意 ...

  8. JMeter命令行监控CPU和内存资源

    首先确定Agent启动成功 客户端

  9. flink的集群的HA高可用

    对于一个企业级的应用,稳定性是首要要考虑的问题,然后才是性能,因此 HA 机制是必不可少的: 和 Hadoop 一代一样,从架构中我们可以很明显的发现 JobManager 有明显的单点问题(SPOF ...

  10. mysql基础理论

    第一节数据库管理系统概述 在www.db-engines.com/en/ 这个网站中可以看到对数据库的排名 数据库分为: 关系型数据库: mysql------mariaDB oracle 非关系型数 ...