算式基本定理

2021-06-28 11:50:43 字數 1559 閱讀 7547

定理:每乙個大於1的正整數n都可以唯一地寫成素數的乘積,在乘積中的素因子按照非降序排列,正整數n的分解式n=(p1^α1)*(p2^α2)*(p3^α3)* ....... *(pk^αk)稱為n的標準分解式,其中p1,p2,p3......pk是素數,p1<p2<p3.....,且α1α2,α3.......是正整數。

性質:(1)設d(n)為n的正因子的個數,則有d(n)=(α1+1)*(α2+1)*(α3+1)*......*(αk+1)

//p1可以取0~α1個,有α1

+1種取法,同理p2有α2

+1種取法

(2)設f(n)為n的所有因子之和,則有f(n)=【(p1^α1)-1】/(p1-1) *【(p2^α2)-1】/(p2-1) * .....  *【(pk^αk)-1】/(pk-1)

(3)n! 的素因子分解中的素數p的指數(冪)為【n/p】+【n/p^2】+【n/p^3】+.......

應用1:輸入正整數n,計算 n! 中末尾0的個數

輸入:輸入

乙個正整數n (1≤n≤1 000 000 000)

輸出:輸出 n! 末尾0的個數

樣例輸入:3

樣例輸出:0

253分析:求n的階乘末尾0的個數,即求n的階乘的素因子分解中有多少對(2,5),即求2的指數和5的指數,取其中小的個數(利用性質3可求)

**:

#include #include using namespace std;

int main()

five=5;

s2=0;

while(five<=n)

printf("%d\n",min(s1,s2));

} return 0;

}

補充:對於n!,在因式分解中,因子2的個數大於5的個數,所以如果存在乙個因子5,那麼它必然對應著n!末尾的乙個0。(只求5的指數即可)

應用2:對於給定的素數p,c(2n,n)恰好被p整除多少次?

輸入:輸入n和p,(1≤n,p≤1 000 000 000)

輸出:輸出給出的c(2n,n)被素數p整除的次數,當不能整除時,次數為0。

樣例輸入:2  2

2  3

樣例輸出: 11分析

ans=(【2n/p】-2【n/p】)+(【2n/p^2】-2【n/p^2】)+......... +(【2n/p^k】-2【n/p^k】)  其中k=log p(2n)向下取整

**:

#include #include #include using namespace std;

int main()

printf("%d\n",ans);

} return 0;

}

算數基本定理

算數基本定理 符號 a b a整除b a,b a,b最大公約數 a,b a,b最小公倍數 定理1 設p是素數,p a1a2,那麼p a1或p a2至少有乙個成立。一般的,若p a1 ak,則p a1,p ak至少有乙個成立。定理2 設a 1,那麼必有a p1p2 ps 其中pj 1 j s 是素數,...

算術基本定理

例題一 計算n!末尾0的個數 輸入 第一行上有個數字,表示接下來要輸入數字的個數。然後是m行,每行包含乙個確定的正整數n,1 n 1 000 000 000 輸出 對輸入行中每乙個資料n,輸出一行,其內容是n!中末尾0的個數 分析 對於任意乙個正整數,那麼其末尾0必然可以分解成2 5,每乙個0必然和...

算術基本定理

因為畢設要求,需要對這些初等數論的知識學習,做個筆記,以便日後複習。算術基本定理可表述為 任何乙個大於1的自然數 n,如果n不為質數,那麼n可以唯一分解成有限個質數的乘積n n的標準分解式。最早證明是由歐幾里得給出的,現代是由陳述證明。此定理可推廣至更一般的交換代數和代數數論。方法一 先用現代陳述方...