題目大意:給定 \(n < 2e9\),求不超過 n 的最大反素數。
題解:引理1:不超過 2e9 的數的質因子分解中,最多有 10 個不同的質因子,且各個質因子的指數和不超過30。
引理2:題目要求的最大反素數,實際上是求不超過 n 的數中因子數最多的數的集合中最小的那個數。
引理3:通過引理 2 以及交換證明法可以得出,各個質因子指數必須單調遞減。
**如下
#include using namespace std;
int n,cnt[15];
long long ans,sum;
int p[11]=;
void dfs(int now,long long val,long long sum0)
}void solve()
int main()
洛谷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 反素數 DFS DP
輸出11到nn 中約數個數最多且盡量小的數。如果你很厲害的話可以打出來乙個表。include include using namespace std long long a int n,ans,i intmain 正解是dpd p,如果你鑽研資料範圍的話dfs dfs也可以過。什麼是鑽研資料範圍呢?...
洛谷P1463 反素數 DFS DP
輸出11到nn 中約數個數最多且盡量小的數。如果你很厲害的話可以打出來乙個表。include include using namespace std long long a int n,ans,i intmain 正解是dpd p,如果你鑽研資料範圍的話dfs dfs也可以過。什麼是鑽研資料範圍呢?...