自己在校內互坑賽出了一道歐拉定理的板子題,但是因為數據水變成了模擬數學題,真是一個悲傷的故事。。。
說一下歐拉定理的證明吧,之前一直認為費馬小定理的證明很復雜,但是懂了歐拉定理之后就迎刃而解了。
首先,我們需要知道歐拉定理是什么:
數論上的歐拉定理,指的是
這個式子實在a和n互質的前提下成立的。
為什么成立呢?下面來證一下。
首先,我們知道在1到n的數中,與n互質的一共有\(φ(n)\)個,所以我們把這\(φ(n)\)個數拿出來,放到設出的集合X中,即為\(x_1,x_2……x_{φ(n)}\)。
那么接下來,我們可以再設出一個集合為M,設M中的數為:
下面我們證明兩個推理:
一、M中任意兩個數都不模n同余。
反證法。
證明:假設M中存在兩個數設為\(m_a,m_b\)模n同余。
即\(m_a \equiv m_b\)
移項得到:\(m_a-m_b=n*k\)
再將m用x來表示得到:\(a*x_a-a*x_b=n*k\)
提取公因式得到\(a*(x_a-x_b)=n*k\)
我們現在已知a與n互質,那么式子就可以轉化為:\(x_a-x_b\equiv 0(modn)\),因為a中沒有與n的公因子(1除外)所以a對模n同余0並沒有什么貢獻。
又因為\(x_a,x_b\)都是小於n的並且不會相同,所以\(x_a-x_b\)一定是小於n的,那么上述的式子自然全都不成立。
假設不成立。
證得:M中任意兩個數都不模n同余。
二、M中的數除以n的余數全部與n互質。
證明:我們已知\(m_i=a*x_i\).
又因為a與n互質,\(x_i\)與n互質,所以可得\(m_i\)與n互質。
帶入到歐幾里得算法中推一步就好了。
即:
證畢。
根據我們證得的兩個性質,就可以開始推式子了。
首先,根據第二個性質可以知道,M中的數分別對應X中的每個數模n同余。
所以可以得到:
現在我們把\(m_i\)替換成x的形式,就可以得到:
很顯然,我們應該移項了,但是在移項之前,我們認為這么多的a很煩,那么就先乘起來:
很開心,我們終於湊出了\(a^{φ(n)}\),那么就開始移項吧:
然后,就出來啦:
證畢。
開心。