题目链接

题目描述

对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。

如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。

现在给定一个数N,你能求出不超过N的最大的反质数么?

题目分析

根据反质数的概念和算术基本定理,我们可以知道,若x为反质数,则x=∏piai(pi为质数,pi>pi-1,ai<=ai-1)(对于最后一项限制的说明:若存在ai>ai-1,则交换ai与ai-1所得的数与原来的数因数个数相等,但比原来的数小,故原数非反质数)。

这样,我们只需要从小到大枚举质数,对于每一个质数枚举它的指数进行搜索,判断生成的数是否是满足条件的最大反质数即可,注意如果当前生成的数因数个数与记录的最大因数个数相等,但数本身比记录值小,需要更新记录值,因为原来的数已经不是反质数了。

对于枚举质数的范围,因为2×3×5×7×11×13×17×19×23×29大于N的最大值,故只需枚举这几个质数即可。同时,由于231也已经大于N的最大值,所以指数的上界为31。

代码

 #include<cstdio>
using namespace std;
const int prime[]={,,,,,,,,,,};
unsigned long long n,max_factor,ans;
void dfs(unsigned long long step,unsigned long long sum,unsigned long long factor,unsigned long long maxn)
{
if(step>||sum>n)
return;
if(max_factor<factor)
{
max_factor=factor;
ans=sum;
}
else if(max_factor==factor&&ans>sum)
ans=sum;
unsigned long long t=;
for(unsigned long long i=;i<=maxn;++i)
{
t*=prime[step];
dfs(step+,sum*t,factor*(i+),i);
}
return;
}
int main()
{
scanf("%llu",&n);
dfs(,,,);
printf("%llu",ans);
return ;
}

反素数

洛谷 P1463 [POI2002][HAOI2007]反素数的更多相关文章

  1. 【题解】洛谷P1463 [POI2002][HAOI2007] 反素数(约数个数公式+搜索)

    洛谷P1463:https://www.luogu.org/problemnew/show/P1463 思路 约数个数公式  ai为质因数分解的质数的指数 定理: 设m=2a1*3a2*...*pak ...

  2. Luogu P1463 [POI2002][HAOI2007]反素数【数论/dfs】By cellur925

    题目传送门 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1 ...

  3. [POI2002][HAOI2007]反素数

    题意 反素数 想法 证明这样一个结论 对于一个可行的反素数\(p\) \(p = \sum_{i}^{k} p_{k} ^ {c_k}\) 当 \(p_i > p_j 有 c_i < c_ ...

  4. 数学结论【p1463】[POI2002][HAOI2007]反素数

    Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数 ...

  5. [POI2002][HAOI2007]反素数 数论 搜索 好题

    题目描述: 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4, ...

  6. [POI2002][HAOI2007]反素数(Antiprime)

    题目链接 这道题需要用到整数唯一分解定理以及约数个数的计算公式.这里我就不再阐述了. 公式可以看出,只有指数影响约数个数,那么在唯一分解出的乘式中,指数放置的任何位置都是等价的.(即 23*34*57 ...

  7. 【BZOJ1053】[HAOI2007]反素数

    [BZOJ1053][HAOI2007]反素数 题面 bzoj 洛谷 题解 可以从反素数的定义看出小于等于\(x\)的最大反素数一定是约数个数最多且最小的那个 可以枚举所有的质因数来求反素数,但还是跑 ...

  8. 【BZOJ1053】[HAOI2007]反素数 (搜索+数论)

    \([POI2002][HAOI2007]\)反素数 题目描述 对于任何正整数x,其约数的个数记作\(g(x)\).例如\(g(1)=1.g(6)=4\). 如果某个正整数x满足:\(g(x)> ...

  9. 【BZOJ1053】[HAOI2007]反素数(搜索)

    [BZOJ1053][HAOI2007]反素数(搜索) 题面 BZOJ 洛谷 题解 大力猜一下用不了几个质因子,那么随便爆搜一下就好了. #include<iostream> #inclu ...

随机推荐

  1. js基础——函数

    1.函数声明:通过函数可封装任意多条语句,且可在任意地方.任何时候调用执行. eg. function box(){//无参函数      alert("只有函数被调用,我才会被执行&quo ...

  2. springboot上传文件时500错误,提示临时目录无效

    org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nes ...

  3. H3C 端口绑定基本配置

  4. CF1146G Zoning Restrictions

    CF1146G Zoning Restrictions 网络流 h<=50? 直接都选择最大的,ans=n*h*h 最小割 考虑舍弃或者罚款 有一个>x就要罚款? 经典取值限制的模型:切糕 ...

  5. 2018百度之星资格赛A B F

    A.调查问卷 度度熊为了完成毕业论文,需要收集一些数据来支撑他的论据,于是设计了一份包含 mm 个问题的调查问卷,每个问题只有 'A' 和 'B' 两种选项. 将问卷散发出去之后,度度熊收到了 nn  ...

  6. Linux 内核中的数据类型

    在我们进入更高级主题之前, 我们需要停下来快速关注一下可移植性问题. 现代版本的 Linux 内核是 高度可移植的, 它正运行在很多不同体系上. 由于 Linux 内核的多平台特性, 打算做认真使用的 ...

  7. CSS 兼容问题

    CSS常见兼容性问题总结 浏览器的兼容性问题通常是因为不同的浏览器对不同的代码有不同的解析造成页面显示不统一的情况,这里的浏览器通常指IE 6,7,8,9... Google Firefox Oper ...

  8. 一个简单的Web服务器-支持Servlet请求

    上接 一个简单的Web服务器-支持静态资源请求,这个服务器可以处理静态资源的请求,那么如何处理Servlet请求的呢? 判断是否是Servlet请求 首先Web服务器需要判断当前请求是否是Servle ...

  9. koa2入门--03.koa中间件以及中间件执行流程

    //中间件:先访问app的中间件的执行顺序类似嵌套函数,由外到内,再由内到外 //应用级中间件 const koa = require('koa'); var router = require('ko ...

  10. php二维数组转成一维数组

    $arr是需要转换的数组集合 array_reduce($arr, 'array_merge', array());