C 簡單數論均值不等式 整數劃分

2021-09-07 23:48:51 字數 765 閱讀 4822

讀入乙個正整數n。要求將n寫成若干個正整數之和,並且使這些正整數的乘積最

大。例如,n=13,則當n表示為4+3+3+3(或2+2+3+3+3)時,乘積=108為最大。

乙個整數n。(0如果暴搜的話,這將會是一棵**的搜尋樹。

首先我們可以想一想如果將乙個數分成兩個加數,求它們的積最大。十分簡單就是(n/2)*(n-n/2)最大(均值不等式不解釋)。

所以我們可以思考出可以將此數一直二分直到分成2+2或2+3的形式,由此我們可以化簡。

sum1為n減去m個2後第一次成為3的倍數,sum2為sum1/3後的數。

最大值就為(2 ^ m)* ( 3 ^ sum2);

最後再打高精乘就可以了。(如果不會你適合它)

#include#include#includeusing namespace std;

int n,m,sum1,sum2,dp[5005],tot;

void dg1(int x)

dg1(x-2);

}int main()

}ji=0;

for(int i=1;i<=sum2;i++)

}int t=0;

for(int i=5000;i>=1;i--)

}printf("%d\n",tot);

tot=0;

t=0;

for(int i=5000;i>=1;i--)

if(tot==100)

return 0;

}}

簡單數論初步

定義 設 a,b in mathbb 且 b neq 0 如果存在 q in mathbb 使得 a bq 則 b 整除a,記作 b mid a 此時 b 為 a 的因數,a 叫做 b 的倍數.性質1 如果a mid b 且 b mid c 那麼 c mid a 證明 設an b,bm c n,m ...

簡單數論 質數

在 1 的整數中,如果只包含1和本身兩個約數,這個數就被稱為質數 素數。質數的判定 試除法 暴力列舉 o n bool is prime int n 簡單優化 o sqrt 對任意的d能整除n d n 顯然n除上d也能整除n frac n 如n 12,3是12的約數,4也是12的約數 2是12的約數...

簡單數論定理

pi x 來表示小於乙個正實數 x 的素數個數 pi x frac x rightarrow infty 任何乙個大於1的自然數 n 都可以唯一分解成有限個質數的乘積 n p 1 p 2 p k 這裡 p i 均為質數,其諸指數 a i 是正整數。將 n 分解質因數得 n p 1 p 2 p k 則...