先來一發:
大牛的總結
1.求乙個最小的數x使得他的因子數為n
每個數的因子數為:每個質因數的指數+1後相乘。
建立搜尋樹後去找最小的滿足條件的數x,注意剪枝。
然後因為要找最小的,所以隨著質因數的變大,指數是非遞增的。
如果指數反而變大,交換前後的指數,因子數不變,但數變小了。
#include
#include
#include
using
namespace
std;
typedef
unsigned
long
long ull;
const ull inf = ~0ull;
int p[16] = ;
//p陣列所以數乘起來不爆ull,因為質因數的指數不遞減,所以所以指數為1的時候不爆ull的最多幾個質數,得到這個p陣列,即不爆ull的情況下最多會用到幾個質數。
int n;
ull ans;
void dfs(int dept,ull tmp,int num,int x)
}int main()
python打反素數 反素數求解 反素數打表
問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0 現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1...
反素數求解 反素數打表
問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1 ...
反素數求解 反素數打表
問題描述 對於任何正整數x,起約數的個數記做g x 例如g 1 1,g 6 4.如果某個正整數x滿足 對於任意i 0現在給乙個n,求出不超過n的最大的反素數.比如 輸入1000 輸出 840 思維過程 求 1.n 中約數在大的反素數 求約數最多的數 如果求約數的個數 756 2 2 3 3 7 1 ...