借用了下东北师大ACM的反素数模版。

本来我是在刷线段树的,有一题碰到了反素数,所以学了一下。。有反素数的存在,使得一个x ,使得x的约数个数,在1 到 x的所有数里面,是最大的。

这里面还涉及安叔那天讲的求一个数的约数个数,用其素数因子的指数相乘即可。

这是东北师大的模版:

 typedef __int64 INT;
INT bestNum; //约数最多的数
INT bestSum; //约数最多的数的约数个数
const int M=; //反素数的个数
INT n=;//求n以内的所有的反素数
INT rprim[M][];
//2*3*5*7*11*13*17>n,所以只需考虑到17即可
INT prim[]={,,,,,,,,,}; //当前走到num这个数,接着用第k个素数,num的约数个数为sum,
//第k个素数的个数上限为limit
void getNum(INT num,INT k,INT sum,INT limit) {
if(num>n)return;
if(sum>bestSum){
bestSum = sum;
bestNum = num;
}else if(sum == bestSum && num < bestNum){ //约数个数一样时,取小数
bestNum = num;
}
if(k>=) return; //只需考虑到素数17,即prim[6] for(INT i=,p=;i<=limit;i++){ //素数k取i个
p*=prim[k];
if(p>n||p*num>n) return; //这里也要判断一下,否则老是爆掉。
getNum(num*p,k+,sum*(i+),i);
}
} INT log2(INT n){ //求大于等于log2(n)的最小整数
INT i = ;
INT p = ;
while(p<n){
p*=;
i++;
}
return i;
} int getrprim(){//反素数的个数
int i = ;
while(n>){
bestNum = ;
bestSum = ;
getNum(,,,log2(n));
n = bestNum - ;
rprim[i][]=bestNum;
rprim[i][]=bestSum;
i++;
}
return i;
}

ZOJ 2562的代码

#include <iostream>
#include <cstdio>
typedef long long ll;
using namespace std;
ll prime[]={,,,,,,,,,,,,,,,};
ll antinum;
ll antisum;
ll antiprime[][];
ll maxn;
ll log2(ll n)
{
ll i=,p=;
while (p<n)
{
p*=;
i++;
}
return i;
}
void getanti(ll num,ll sum,ll k,ll limit)
{ if (num > maxn) return;
//cout<<num<<endl;
if (sum>antisum) {antisum=sum;antinum=num;}
else
if (sum==antisum&&num<antinum) antinum=num;
if (k>) return;
for (ll i=,p=;i<=limit;i++)
{
p*=prime[k];
if (p>maxn||num*p>maxn) return;
getanti(num*p,sum*(i+),k+,i);
}
}
void getnum()
{
antinum=;
antisum=;
//cout<<maxn<<endl;
getanti(,,,); }
int main()
{
//printf("%I64d\n",maxn);
// ll cur=getnum();
ll t;
//cout<<cur<<endl;
// for (int i=cur-1;i>=0;i--)
//cout<<antiprime[i][0]<<endl;
while (scanf("%lld",&t)!=EOF)
{
maxn=t;
getnum();
printf("%lld\n",antinum);
}
return ;
}

ZOJ- 2562 反素数使用的更多相关文章

  1. zoj 2562 反素数

    题目大意:求n范围内最大的反素数(反素数定义:f(x)表示x的因子数,f(x)>f(x1) (0<x1<x)) x用质因数形式为:x=a1^p1*a2^p2......an^pn(a ...

  2. zoj 1562 反素数 附上个人对反素数性质的证明

    反素数的定义:对于不论什么正整数,其约数个数记为.比如,假设某个正整数满足:对随意的正整 数.都有,那么称为反素数. 从反素数的定义中能够看出两个性质: (1)一个反素数的全部质因子必定是从2開始的连 ...

  3. ZOJ 2562 HDU 4228 反素数

    反素数: 对于不论什么正整数x,起约数的个数记做g(x).比如g(1)=1,g(6)=4. 假设某个正整数x满足:对于随意i(0<i<x),都有g(i)<g(x),则称x为反素数. ...

  4. ZOJ 2562 More Divisors(高合成数)

    ZOJ 2562 More Divisors(高合成数) ACM 题目地址:ZOJ 2562 More Divisors 题意:  求小于n的最大的高合成数,高合成数指一类整数,不论什么比它小的自然数 ...

  5. poj 2886 线段树的更新+反素数

    Who Gets the Most Candies? Time Limit: 5000 MS Memory Limit: 0 KB 64-bit integer IO format: %I64d , ...

  6. 【POJ2886】Who Gets the Most Candies?-线段树+反素数

    Time Limit: 5000MS Memory Limit: 131072K Case Time Limit: 2000MS Description N children are sitting ...

  7. Prime & 反素数plus

    题意: 求因数个数为n的最小正整数k. n<=10^9输出其唯一分解形式 SOL: 模拟题,一眼看过去有点惊讶...这不是我刚看过的反素数吗... 咦数据怎么这么大,恩搞个高精吧... 于是T了 ...

  8. BZOJ 1053 & 反素数

    题意: 反素数,膜一篇GOD's Blog...http://blog.csdn.net/ACdreamers/article/details/25049767 此文一出,无与争锋... CODE: ...

  9. Who Gets the Most Candies?(线段树 + 反素数 )

    Who Gets the Most Candies? Time Limit:5000MS     Memory Limit:131072KB     64bit IO Format:%I64d &am ...

随机推荐

  1. 《ES6标准入门》(阮一峰)--5.字符串的新增方法

    1.String.fromCodePoint() ES5 提供String.fromCharCode()方法,用于从 Unicode 码点返回对应字符,但是这个方法不能识别码点大于0xFFFF的字符. ...

  2. POJ3295 Tautology重言式

    Tautology 思路很简单,对于p.q.r.s.t暴力枚举是0还是1,判断即可.判断时像写表达式求值那样用栈.为了方便可以从后往前,因为最后一个肯定不是运算.那几个奇奇怪怪的函数可以找规律然后转为 ...

  3. 树莓派3b安装Windows10 Arm

    感谢老外的这个项目:https://github.com/WOA-Project/WOA-Deployer-Rpi 还有这个:https://uupdump.ml/ 首先从https://uupdum ...

  4. htmp to pdf

    C++ Library to Convert HTML to PDF html2pdf PrinceXML 收费 CutePDF Ghostscript PDFDoc VisPDF PDFDoc Sc ...

  5. JavaScript中的apply()方法和call()

    apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域   两个函数的第一个参数是都是,要执行语句的作业域,即this 区别是 apply后面只能传一个大参数,call后面参数只能一 ...

  6. 工具类css框架

    @charset "UTF-8"; * {     -webkit-box-sizing: border-box;     box-sizing: border-box;      ...

  7. 洛谷[Luogu] 普及村总结

    总结 简单的模拟 交叉模拟 排序 排序EX

  8. JNI操作二维数组

    之前的文章讲解了有关JNI使用方法,这篇文章进阶一点,介绍下JNI操作二维数组的方法.有了之前文章的操作JNI的方法,这里直接上代码了. Java代码部分 package com.testjni; p ...

  9. Django 初体验

    Django 依赖的python 基础环境安装: https://www.runoob.com/django/django-install.html Django安装参考官网文档: https://d ...

  10. python进阶—OpenCV之常用图像操作函数说明(转)

    文章目录cv2.thresholdcv2.bitwise_andcv2.bitwise_orcv2.bitwise_notcv2.inRangecv2.resizecv2.adaptiveThresh ...