反素數總結

2021-07-24 03:55:26 字數 615 閱讀 8549

先來一發:

大牛的總結

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 ...