洛谷 P1463 [POI2002][HAOI2007]反素数
生活随笔
收集整理的這篇文章主要介紹了
洛谷 P1463 [POI2002][HAOI2007]反素数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
對于任何正整數x,其約數的個數記作g(x)。例如g(1)=1、g(6)=4。
如果某個正整數x滿足:g(x)>g(i) 0
分析
利用約數個數公式求答案
相當于找約數最多的數,個數相同取較小的
有一點需要注意:分解質因數,較小的數的指數一定大于等于較大的數的指數
然后,我們發現——我們維護素因子從小到大數量的單調遞減性即可
.
.
.
.
.
程序:
#include<iostream> using namespace std; long long n,mx,ans,s[100]; long long prime[14]={0,2,3,5,7,11,13,17,19,23,29,31,37};void dfs(int x,long long sum,long long h) {if (x>12)return;if (sum>mx||(sum==mx&&h<ans)){mx=sum;ans=h;}s[x]=0;while (h*prime[x]<=n&&s[x]<s[x-1]){s[x]++;h*=prime[x];long long w=sum*(s[x]+1);dfs(x+1,w,h);} }int main() {cin>>n;s[0]=100000;dfs(1,1,1);cout<<ans; }轉載于:https://www.cnblogs.com/YYC-0304/p/10292856.html
總結
以上是生活随笔為你收集整理的洛谷 P1463 [POI2002][HAOI2007]反素数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 P3383 【模板】线性筛素数
- 下一篇: 洛谷 P2261 [CQOI2007]余