博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1053: [HAOI2007]反素数ant - BZOJ
阅读量:5233 次
发布时间:2019-06-14

本文共 883 字,大约阅读时间需要 2 分钟。

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

 

终于忍住没看题解,自己成功想出一个题

先筛质数,首先我们知道分解质因数后 i=p1^s1*p2^s2...pk^sk;那么g(i)=(s1+1)*(s2+1)*(s3+1)...(sk+1)

所以我们枚举质数的指数,直接枚举不太好

我们可以发现一个性质,反质数的各个指数一定是不上升的,因为上升的情况我们可以翻转上升的那一段,使得g不变i变小,这个时候搜索就无压力了

一开始没注意,其实前十个质数相乘已经很大了,我们只要前十个就行了

还有就是,要记录现在ans的g,如果有一样的g,要选小的那个

1 const 2     zhi:array[1..10]of integer=(2,3,5,7,11,13,17,19,23,29); 3 var 4     n,tot,ans,num:longint; 5  6 procedure try(x:int64;y,z,k:longint); 7 var 8     i:longint; 9 begin10     if (num
n then exit;19 try(x,i,z+1,k*(i+1));20 end;21 end;22 23 begin24 read(n);25 try(1,n,1,1);26 write(ans);27 end.
View Code

 

转载于:https://www.cnblogs.com/Randolph87/p/3652623.html

你可能感兴趣的文章
随机采样方法整理与讲解(Acceptance-Rejection、MCMC、Gibbs Sampling等)
查看>>
高斯混合模型(GMM)及MATLAB代码
查看>>
MATLAB 可以画的各种类型的图总结
查看>>
全面解读Group Normalization,对比BN,LN,IN
查看>>
VLAD算法浅析, BOF、FV比较
查看>>
RAdam VS Adam
查看>>
可分离卷积详解及计算量 Basic Introduction to Separable Convolutions
查看>>
CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等
查看>>
Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算...
查看>>
一声祝贺,几句致歉和我的话
查看>>
【网上转载搜罗】本博客花里胡哨(划掉)效果js代码
查看>>
win7 能ping通dns, 但无法解析域名
查看>>
centos 软件安装包下载网站
查看>>
nmap 端口扫描工具
查看>>
Excel vlookup筛选两列的重复项
查看>>
CentOS7 SSH免密码登录
查看>>
配置了BFD MAD, 在IRF正常情况下的 BFD状态是不是 down?
查看>>
SQL server 2012定期的备份数据库--完整+差异+事物
查看>>
C语言 - 可变参数再stm32中的应用
查看>>
vscode + platformIO开发stm32f4
查看>>