题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085

题意:求n(<=10^100)之内最大的反素数。

思路:

优化2:

int prime[]=
{1,  2,  3,  5,  7,11, 13, 17, 19, 23,29, 31, 37, 41, 43,47, 53, 59, 61, 67,71, 73, 79, 83, 89,97, 101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251
};
int K[]=
{1,2,2,3,3,4,4,5,5,5,5,5,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
};
struct BIGINT
{int a[27];BIGINT(){}BIGINT(char *s){clr(a,0);int i,L=strlen(s),cur=0;for(i=L-1;i-3>=0;i-=4){a[cur]=(s[i-3]-'0')*1000+(s[i-2]-'0')*100+(s[i-1]-'0')*10+(s[i]-'0');cur++;}if(i<0) return;if(i==0) a[cur]=s[0]-'0';else if(i==1) a[cur]=10*(s[0]-'0')+(s[1]-'0');else if(i==2) a[cur]=100*(s[0]-'0')+10*(s[1]-'0')+(s[2]-'0');}BIGINT(int x){clr(a,0);a[0]=x;}inline BIGINT operator*(int x){int i;BIGINT tmp;for(i=0;i<27;i++) tmp.a[i]=a[i]*x;for(i=0;i<26;i++){tmp.a[i+1]+=tmp.a[i]/10000;tmp.a[i]%=10000;}return tmp;}int operator<(BIGINT p){int i;for(i=26;i>=0;i--){if(a[i]<p.a[i]) return 1;if(a[i]>p.a[i]) return 0;}return 0;}int operator==(BIGINT p){int i;for(i=26;i>=0;i--){if(a[i]!=p.a[i]) return 0;}return 1;}int operator<=(BIGINT p){return *this==p||*this<p;}void print(){int cur=26;while(cur>0&&0==a[cur]) cur--;printf("%d",a[cur]);cur--;while(cur>=0) printf("%04d",a[cur--]);puts("");}
};char s[111];
BIGINT n;
int Max;int cnt2;BIGINT ans;
i64 ansFac;void DFS(int dep,BIGINT cur,i64 facNum,int preMax)
{if(facNum>ansFac||facNum==ansFac&&cur<ans){ans=cur;ansFac=facNum;}int i;i64 tmp=facNum;int Min=min(preMax,2*K[Max]-1-1);if(dep>1) Min=min(Min,cnt2/(K[dep]-1));for(i=1;i<=Min;i++){if(dep==1) cnt2=i;cur=cur*prime[dep];tmp+=facNum;if(n<cur) break;DFS(dep+1,cur,tmp,i);}
}int main()
{scanf("%s",s);n=BIGINT(s);if(n==BIGINT(1)){puts("1");return 0;}BIGINT cur=BIGINT(1);while(cur<=n) cur=cur*prime[++Max];DFS(1,BIGINT(1),1,100);ans.print();
}

转载于:https://www.cnblogs.com/jianglangcaijin/p/4158422.html

BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)相关推荐

  1. 反质数问题,求不大于n的最大反质数

    反质数:设f(n)表示n个约数的个数,如果对于任意x有0<x<n, f(x) < f(n),那么n就是一个反质数我们都知道对于任意一个数n,都可以用质数乘积的形式表示出来:x = p ...

  2. noip题库 —— 4.7反质数

    1.题目大意:定义g(x)为x的约数个数,如果对于任意的y使得y < x且 g(y) < g(x),那么x成为反质数 现在,让你求一个区间内的反质数区间的两个端点 <= 10^9 2 ...

  3. COJN 0486 800401反质数 呵呵呵呵呵

    800401反质数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1 ...

  4. 如何理解:先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法,即对于机器数为负数,则有[X]原=[[X]补]补。

    对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法,即对于机器数为负数,则有[X]原=[[X]补]补. 当然你也可以用先减1后取反的方法来求补码对应的原码. 对于求 ...

  5. 如何反编译,防止反编译,常见问题总结

    本文对如何反编译,防止反编译,和常遇到的问题做了个总结,并略有修改. 资源来自:http://blog.csdn.net/sunboy_2050/article/details/6727581 htt ...

  6. 常见的反爬措施:UA反爬和Cookie反爬

    本文分享自华为云社区<Python爬虫反爬,你应该从这篇博客开启,UA反爬,Cookie 特定参数反爬>,作者:梦想橡皮擦. 通过前面的爬虫程序,你或许已经注意到,对于目标站点来说,爬虫程 ...

  7. 爬虫笔记41之反爬系列四:字体反爬、JS反爬

    一.字体反爬 1.什么是字体反爬? 开发者创作了一种字体(字体代号):网页中显示的就是这种字体代号. 字体反爬也叫CSS反爬,就是因为这个字体是隐藏在我们css文件当中的一个.ttf文件. ​2.如何 ...

  8. 卷积、空洞卷积、反卷积与空洞反卷积的计算公式(全)

    前言: 经常使用的卷积有卷积.空洞卷积.反卷积与空洞反卷积的,下面总结了他们的计算公式. 一.卷积计算公式 卷积神将网络的计算公式为: N=(W-F+2P)/S+1 其中 N:输出大小 W:输入大小 ...

  9. P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)

    P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...

最新文章

  1. 中科院计算所沈华伟:GNN发展简史,诟病才是成长动力
  2. Spring IOC和MVC基础知识
  3. python删除排序数组中的重复项
  4. mysql+cur+0_MySQLcurdate()函数的实例详解
  5. insert时调用本身字段_MySQL RC级别下并发insert锁超时问题 - 案例验证
  6. ef6 mysql_VS2015 + EF6连接MYSQL5.6
  7. 7 分钟全面了解位运算
  8. c语言多线程的建立视频,如何用C语言实现多线程
  9. Json学习总结(3)——Jsonp跨域及Rest接口实现
  10. linux tar权限不够,Linux用户,群组,权限 ,tar命令
  11. 知乎回答:为什么微博很难起到社交的作用?
  12. 看微软“第四代模块化数据中心”宣传片之后的思考
  13. jQuery对象和DOM对象的区别
  14. 如何在matlab坐标轴上输入希腊字符和开根号符号
  15. 给大家推荐一波Python书单,电子版拿走不谢
  16. 软件工程作业-方舟学习笔记08-部分原理(续
  17. 《响应式Web设计实践》一2.2 字体大小
  18. NYOJ 42 一笔画
  19. 计算机开机图片怎么换,如何把电脑开机画面换成自己的图片?
  20. Prometheus 查询语言 PromQL 的 CPU 使用率计算方法

热门文章

  1. python声明_【瞎折腾-03】在Python里面写类型“声明”
  2. python:实现简单的web开发demo
  3. 计算机视觉方面代码和论文
  4. 中国互联网+政务建设发展现状及市场规模预测报告2022-2027年版
  5. 有关缅甸语学习的一些网站
  6. A Fully Featured Windows HTTP Wrapper in C++
  7. Nuxt.js asyncData 多请求
  8. SQL SERVER 2000安装遇到的问题小汇总(转载)
  9. 一种storyboard+swift实现页面跳转的方法
  10. ubuntu下eclipse新建项目没有java project的解决办法