• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ArcTan

            dfs
            隨筆 - 16, 文章 - 117, 評論 - 6, 引用 - 0
            數據加載中……

            歐拉函數(資料+模板)

            http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0
            歐拉函數 :

            歐拉函數是數論中很重要的一個函數,歐拉函數是指:對于一個正整數 n ,小于 n 且和 n 互質的正整數(包括 1)的個數,記作 φ(n) 。

            完全余數集合:
            定義小于 n 且和 n 互質的數構成的集合為 Zn ,稱呼這個集合為 n 的完全余數集合。 顯然 |Zn| =φ(n) 。

            有關性質:
            對于素數 p ,φ(p) = p -1 。
            對于兩個不同素數 p, q ,它們的乘積 n = p * q 滿足 φ(n) = (p -1) * (q -1)  。
            這是因為 Zn = {1, 2, 3,  ... , n - 1} - {p, 2p, ... , (q - 1) * p} - {q, 2q, ... , (p - 1) * q} , 則 φ(n) = (n - 1) - (q - 1) - (p - 1) = (p -1) * (q -1)  =φ(p) * φ(q)

            歐拉定理 :
            對于互質的正整數 a 和 n ,有 aφ(n)  ≡ 1 mod n  。
            證明:
            ( 1 ) 令 Zn = {x1, x2, ..., xφ(n)} S = {a * x1 mod n, a * x2 mod n, ... , a * xφ(n) mod n}
                    則 Zn = S 。
                    ① 因為 a 與 n 互質, xi (1 ≤ i ≤ φ(n)) 與 n 互質, 所以 a * xi  與 n 互質,所以 a * xi  mod n ∈ Zn 。
                    ② 若 i ≠ j , 那么 xixj,且由 a, n互質可得 a * xi mod n ≠ a * xj mod n (消去律)。

            ( 2 )     aφ(n) * x1 * x2 *... * xφ(n) mod n
                 
            (a * x1) * (a * x2) * ... * (a * xφ(n)) mod n
                  
            (a * x1 mod n) * (a * x2 mod n) * ... * (a * xφ(n) mod n) mod n
                 
              x1 * x2 * ... * xφ(n) mod n
                  對比等式的左右兩端,因為
            xi  (1 ≤ i ≤ φ(n)) 與 n 互質,所以 aφ(n)  ≡  1 mod n (消去律)。
            注:
            消去律:如果 gcd(c,p) = 1 ,則 ac ≡ bc mod p ⇒ a ≡ b mod p 。

            費馬定理 :
            若正整數 a 與素數 p 互質,則有 ap - 1 ≡ 1 mod p


            這個是歐拉定理的特殊情況,p是素數,則p的歐拉函數就是p-1.

            補充:歐拉函數公式

            ( 1 ) pk 的歐拉函數

            對于給定的一個素數 p , φ(p) = p -1。則對于正整數 n = pk

             φ(n) = pk - pk -1

            證明:
            小于 pk 的正整數個數為 pk - 1個,其中
            和 pk 不互質的正整數有{p * 1,p * 2,...,p * (pk - 1-1)} 共計 pk - 1 - 1
            所以 φ(n) = pk - 1 - (pk - 1 - 1) = pk - pk - 1

            ( 2 ) p * q 的歐拉函數

            假設 p, q是兩個互質的正整數,則 p * q 的歐拉函數為

            φ(p * q) = φ(p) * φ(q) , gcd(p, q) = 1 。

            證明:
            令 n = p * q , gcd(p,q) = 1
            根據中國余數定理,有
            Zn 和 Zp × Zq 之間存在一一映射
            (我的想法是: a
            ∈ Zp , b ∈ Zq ⇔ b * p + a * q ∈ Zn 。
            所以 n 的完全余數集合的元素個數等于集合 Zp × Zq 的元素個數。
            而后者的元素個數為 φ(p) * φ(q) ,所以有
            φ(p * q) = φ(p) * φ(q) 。

            ( 3 ) 任意正整數的歐拉函數

            任意一個整數 n 都可以表示為其素因子的乘積為:

                  I
            n = ∏ piki (I 為 n 的素因子的個數)
            i=1

            根據前面兩個結論,很容易得出它的歐拉函數為:


            I I
            Φ(n) = ∏ piki -1(pi -1) = n
            (1 - 1 / pi)
            i=1
            i=1

            對于任意 n > 2,2 | Φ(n) ,因為必存在  pi -1 是偶數。


            轉自:http://blog.csdn.net/hillgong/article/details/4214327

            以下程序在http://acm.hrbeu.edu.cn/index.php?act=problem&id=1001&cid=25測試通過:

            Compile Error 一次 WA兩次 AC:3Ms
            總結:代碼要寫得快,熟練。一定要注意注意越界溢出啊啊啊啊!!!
            #include<stdio.h>
            #include
            <string.h>
            #include
            <math.h>
            #define inf 50000
            int prime[10005],b[51005],tot;
            int get_prime()
            {
                
            int i,j;
                memset(b,
            0,sizeof(b));
                tot
            =0;
                i
            =2;
                
            while (i<inf)
                
            {
                    
            while (b[i])    i++;
                    prime[
            ++tot]=i;
                    j
            =i;
                    
            while (j<inf)
                    
            {
                        b[j]
            =1;
                        j
            +=i;
                    }

                }

                tot
            --;
            }


            int main()
            {
                
            int i,j,k,p,n,m;
                
            long long ans;    //這里之前溢出 wa 2次!
                get_prime();
                
            while (scanf("%d",&n)==1&&n)
                
            {
                    ans
            =m=n;
                    i
            =1;
                    
            while (i<=tot)
                    
            {
                        
            if (n%prime[i]==0)
                        
            {
                            ans
            =ans*(prime[i]-1)/prime[i];
                            
            while (n%prime[i]==0)
                                n
            =n/prime[i];
                        }

                        i
            ++;
                    }

                    
            if (n>prime[tot])
                        ans
            =ans*(n-1)/n;
                    printf(
            "%lld\n",ans);
                }

                
            return 0;
            }



            做了好幾天數論了,好不容易AC一個題目!!啊啊啊啊

            posted on 2012-04-21 17:28 wangs 閱讀(502) 評論(1)  編輯 收藏 引用 所屬分類: ACM-數學

            日日狠狠久久偷偷色综合免费 | 国内精品久久久久影院薰衣草| 欧美激情精品久久久久久久| 99久久国产精品免费一区二区| 久久精品午夜一区二区福利| 亚洲国产精品久久久久| 久久婷婷五月综合97色直播| 2022年国产精品久久久久| 午夜精品久久久久久影视777| AV无码久久久久不卡网站下载 | A级毛片无码久久精品免费| 久久99精品国产99久久6| 91久久精品91久久性色| 久久ww精品w免费人成| 思思久久精品在热线热| 中文成人久久久久影院免费观看| 免费观看成人久久网免费观看| 久久亚洲AV无码精品色午夜麻豆| 久久e热在这里只有国产中文精品99 | 久久久久免费精品国产| 久久久久久午夜成人影院| 久久综合香蕉国产蜜臀AV| 国产三级久久久精品麻豆三级| 久久青青草原亚洲av无码app | 久久久精品国产亚洲成人满18免费网站 | 久久人妻少妇嫩草AV无码专区| 国产欧美久久久精品| 久久91这里精品国产2020| 97精品伊人久久大香线蕉| 精品久久香蕉国产线看观看亚洲| 国产精品美女久久久免费| 久久九九精品99国产精品| 久久AⅤ人妻少妇嫩草影院| 欧洲成人午夜精品无码区久久| 九九久久精品国产| 日本久久久久久中文字幕| 久久久精品人妻一区二区三区蜜桃| 久久精品草草草| 国产精品欧美久久久久无广告 | 久久午夜夜伦鲁鲁片免费无码影视| 精品久久久久久久无码|