洛谷 P1463 SDOI2005 反素數ant

2021-07-24 15:13:44 字數 934 閱讀 5533

題目描述

對於任何正整數x,其約數的個數記作g(x)。例如g(1)=1、g(6)=4。

如果某個正整數x滿足:g(x) > g(i) 0 < i < x,則稱x為反質數。例如,整數1,2,4,6等都是反質數。

現在給定乙個數n,你能求出不超過n的最大的反質數麼?

輸入輸出格式

輸入格式:

乙個數n(1<=n<=2,000,000,000)。

輸出格式:

不超過n的最大的反質數。

輸入輸出樣例

輸入樣例#1:

1000

輸出樣例#1:

840【分析】

唯一分解定理+暴搜+剪枝

唯一分解定理可以計算約數個數,觀察後發現最多用到前12個質數,然後列舉每個素數的次數。

剪枝:小素數的次數》大素數的次數答案更優

【**】

//[sdoi]反素數 

#include

#include

#include

#include

#define ll long long

#define m(a) memset(a,0,sizeof a)

#define fo(i,j,k) for(i=j;i<=k;i++)

using

namespace

std;

int p[20]=;

ll pow[20][50],t;

int n,ans;

inline

void dfs(int dep,int num,ll now,int last) //num:因子個數

}int main()

dfs(1,1,1,32);

printf("%d\n",ans);

return

0;}

洛谷P1463 反素數

對於任何正整數x,其約數的個數記作g x 例如g 1 1 g 6 4。如果某個正整數x滿足 g x g i 0現在給定乙個數n,你能求出不超過n的最大的反質數麼?乙個數n 1 n 2,000,000,000 不超過n的最大的反質數。輸入 1 1000輸出 1 840思路 菜雞第一次學習反素數,碼點字...

洛谷P1463 反素數

題目大意 給定 n 2e9 求不超過 n 的最大反素數。題解 引理1 不超過 2e9 的數的質因子分解中,最多有 10 個不同的質因子,且各個質因子的指數和不超過30。引理2 題目要求的最大反素數,實際上是求不超過 n 的數中因子數最多的數的集合中最小的那個數。引理3 通過引理 2 以及交換證明法可...

洛谷 P2434 SDOI2005 區間

現給定n個閉區間 ai,bi 1 i n。這些區間的並可以表示為一些不相交的閉區間的並。你的任務就是在這些表示方式中找出包含最少區間的方案。你的輸出應該按照區間的公升序排列。這裡如果說兩個區間 a,b 和 c,d 是按照公升序排列的,那麼我們有a b請寫乙個程式 讀入這些區間 計算滿足給定條件的不相...