当前位置: 首页 > news >正文

[BZOJ1053][HAOI2007]反素数ant

1053: [HAOI2007]反素数ant

Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3444  Solved: 2014 [Submit][Status][Discuss]

Description

 

  对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 0<i<x
,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,你能求出不超过N的最大的反质数么

Input

  一个数N(1<=N<=2,000,000,000)。

Output

  不超过N的最大的反质数。

Sample Input

1000

Sample Output

840
 
要求的就是范围内最小的那个因数最多的数
对于一个整数$x$,可以唯一分解为 $x=p_{1}^{\alpha_{1}}*p_{2}^{\alpha_{2}}*\cdots*p_{n}^{\alpha_{n}}$ 的形式,其中$p$均为质数
那么它的因数个数为$(\alpha_{1}+1)*(\alpha_{2}+1)*\cdots*(\alpha_{n}+1)$,因为每个质数可以选择$\alpha+1$次,乘法原理
又因为要求的是最小,那么显然$p$是从$2$开始的连续质数,且$\alpha$单调不增,然后搜索即可
#include <iostream>
using namespace std;
typedef long long ll;
ll pri[] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23};
int cnt[10] = {0};
ll n, ans = 2, ansnum;
void work(int w, ll num, ll tot){
    if(w > 9) return;
    if(tot > ans){
        ans = tot;
        ansnum = num;
    }
    if(tot == ans && ansnum > num) ansnum = num;
    ll t = 1;
    for(int i = 1; i <= cnt[w - 1]; i++){
        t *= pri[w];    
        if(num * t > n) return;
        cnt[w] = i;
        work(w + 1, num * t, tot * (i + 1));
    }
}
int main(){
    cin >> n;
    cnt[0] = 31;
    work(1, 1, 1);
    cout << ansnum << endl;
    return 0;
}

 

转载于:https://www.cnblogs.com/ruoruoruo/p/7448739.html

相关文章:

  • git 放弃本地修改 强制更新
  • 计算限制的异步操作
  • 各大型邮箱smtp服务器及端口收集: SMTP
  • spark-2.2.0-bin-hadoop2.6和spark-1.6.1-bin-hadoop2.6发行包自带案例全面详解(java、python、r和scala)之环境准备(图文详解)...
  • qt sql多重条件查询简便方法
  • 【Git】Git常见错误
  • sequelizejs中文文档(二)Model定义
  • Spring在JSP页面使用ServletContext
  • iOS,点击button拨打电话
  • springboot使用jpa,删除功能sql报错解决
  • Hadoop技术内幕之前奏Ant
  • 对语文的新看法
  • 8.1 mnist_soft,TensorFlow构建回归模型
  • MQTT服务器搭建--Mosquitto用户名密码配置
  • Kyligence Analytics Platform Enterprise
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • canvas绘制圆角头像
  • classpath对获取配置文件的影响
  • co.js - 让异步代码同步化
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Gradle 5.0 正式版发布
  • Java方法详解
  • JAVA之继承和多态
  • Protobuf3语言指南
  • underscore源码剖析之整体架构
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 从零开始在ubuntu上搭建node开发环境
  • 将回调地狱按在地上摩擦的Promise
  • 判断客户端类型,Android,iOS,PC
  • 如何在 Tornado 中实现 Middleware
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • #{}和${}的区别?
  • #mysql 8.0 踩坑日记
  • #window11设置系统变量#
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2)空速传感器
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)负载均衡,回话保持,cookie
  • (转)树状数组
  • (转载)Linux 多线程条件变量同步
  • .NET : 在VS2008中计算代码度量值
  • .Net Core 生成管理员权限的应用程序
  • .net dataexcel winform控件 更新 日志
  • .net mvc部分视图
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .net打印*三角形
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET分布式缓存Memcached从入门到实战
  • .Net小白的大学四年,内含面经
  • [10] CUDA程序性能的提升 与 流