約數個數定理及實現

2021-07-25 07:49:57 字數 929 閱讀 2801

約束個數定理:

對於乙個大於1正整數n可以分解質因數:n=p1^k1*p2^k2*p3^k3.......

則約數個數x=(k1+1)*(k2+1)*(k3+1)*......

1:給你乙個n求出最小的約束為n個的數。

思路:建樹搜尋,以每乙個pi為一層建樹搜尋。

#include#include#includeusing namespace std;

#define ll long long

const ll maxm = 1e18;

ll ans, n;

int prime[10] = ;

void dfs(int a, int b, ll temp);

int main()

return 0;

}void dfs(int a, int b, ll temp)

}

2:求n以內約數個數最多的數,如果有多個輸出最小值。

基本和上題一樣。

#include#include#include#includeusing namespace std;

#define ll long long

const int ll maxm = ~0ull;

ll n, ans, sum = 0;

int p[16] = ;

void dfs(int a, int b, ll temp);

int main()

return 0;

}void dfs(int a, int b, ll temp)

else if (a == sum&&temp < ans)

ans = temp;

} for (int i = 1;i <= 64;i++)

}

約數個數定理

編輯 對於乙個大於1正整數n可以 分解質因數 則n的 正約數的個數就是 其中a 1 a2 a 3 ak是p 1 p2 p 3,p k的指數。編輯首先同上,n可以 分解質因數 n p1 a1 p2 a2 p3 a3 pk ak,由約數定義可知p1 a1的約數有 p1 0,p1 1,p1 2.p1 a1...

約數個數定理and約數和定理

定理 對於乙個大於1正整數n可以 分解質因數 則n的正約數 的個數就是 證明 省略 舉個栗子 例題 正整數378000共有多少個 正約數?解 將378000 分解質因數378000 2 4 3 3 5 3 7 1 由約數個數定理可知378000共有正約數 4 1 3 1 3 1 1 1 160個。c...

約數個數定理 約數和定理

1 如果我們要求乙個數的所有因數的個數會怎麼去求呢?首先想到最簡單的方法就是暴力求解就可以。當然資料小 或者測試資料少就很簡單就可以過了。2 如果求乙個區間內的數的所有因數的個數呢?或者求乙個區間內的數的因數最大的數以及最大的因數 正因數 的個數?這樣的話,資料大一些,組數多一些,可能就要tle,所...