亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        素?cái)?shù)判定算法的改進(jìn)

        2013-04-25 07:19:32張景龍黃靜王愛(ài)松張春生趙琳娜寶力高
        關(guān)鍵詞:質(zhì)因數(shù)素?cái)?shù)乘積

        張景龍,黃靜,王愛(ài)松,張春生,趙琳娜,寶力高

        (內(nèi)蒙古民族大學(xué),內(nèi)蒙古通遼 028000)

        素?cái)?shù)在計(jì)算機(jī)公鑰私鑰加密中有著重要的應(yīng)用,尤其在RSA公鑰密碼中,通常需要上百位甚至上千位的素?cái)?shù)[1-2].對(duì)于一個(gè)較大的數(shù),判斷其是否是素?cái)?shù)需要極大的計(jì)算量.如何快速地判斷一個(gè)數(shù)是否為素?cái)?shù),有著重要的意義.

        1 相關(guān)知識(shí)

        1.1 素?cái)?shù)的定義

        為了在計(jì)算機(jī)中提高判斷素?cái)?shù)的效率,先從素?cái)?shù)的定義開(kāi)始研究.

        素?cái)?shù),也稱(chēng)質(zhì)數(shù),是指在大于1的自然數(shù)中,除了1和此整數(shù)自身外,沒(méi)法被其他自然數(shù)整除的數(shù)[3-5].從定義出發(fā),判斷自然數(shù)N是否為素?cái)?shù),應(yīng)該用N去除從2到N-1所有的數(shù).如果找不到能夠整除N的整數(shù),則N是素?cái)?shù),否則N不是素?cái)?shù).

        1.2 由素?cái)?shù)定義引出的算法

        根據(jù)定義給出判斷自然數(shù)N是否為素?cái)?shù)的算法1如下:

        (1)設(shè)定變量P=0,作為標(biāo)志變量,P=0表示N為素?cái)?shù),P=1表示N不是素?cái)?shù);

        (2)M=2 TO N-1循環(huán)執(zhí)行(3);

        (3)如果N除以M的余數(shù)為零,則P=1,跳出循環(huán)到(4);否則M+1→M,回到(2);

        (4)如果P=0,則N是素?cái)?shù),否則N不是素?cái)?shù).

        很顯然,利用算法1判斷一個(gè)數(shù)是否為素?cái)?shù),其時(shí)間復(fù)雜度為O(N).

        1.3 判斷素?cái)?shù)的經(jīng)典算法

        事實(shí)上,除數(shù)M的范圍可以進(jìn)一步縮小,假如自然數(shù)N不是素?cái)?shù),則除1和其本身之外,必然至少存在兩個(gè)數(shù)A和B,使得A×B=N,則A、B兩個(gè)數(shù)中必有一個(gè)大于或等于根號(hào)N,一個(gè)小于或等于根號(hào)N.因此,只要用小于或等于根號(hào)N的整數(shù)(1除外)去除N即可[6-7],所以可將作為除數(shù)的變量M的取值范圍縮小到2→[],改進(jìn)的算法2如下:

        (1)設(shè)定變量P=0,作為標(biāo)志變量,P=0表示N為素?cái)?shù),P=1表示N不是素?cái)?shù);

        (3)如果 N 除以 M 的商為零,則 P=1,跳出循環(huán)到(4);否則 M+1→M,回到(2);

        (4)如果P=0,則N是素?cái)?shù),否則N不是素?cái)?shù).

        1.4 素?cái)?shù)的分類(lèi)

        算法2雖然是求素?cái)?shù)的經(jīng)典算法,其實(shí)這個(gè)算法還可以進(jìn)一步改進(jìn).事實(shí)上,在兩位以上的自然數(shù)中,只有個(gè)位是1、3、7、9的數(shù)才有可能是素?cái)?shù).為此,先將素?cái)?shù)根據(jù)個(gè)位數(shù)值的情況進(jìn)行分類(lèi).為了方便描述,定義 N1、N3、N7、N9 分別代表個(gè)位為 1、3、7、9 的自然數(shù),分別表示為 N1=10×n+1,N3=10×n+3,N7=10×n+7,N9=10×n+9,其中n為大于等于1的自然數(shù).

        2 非素?cái)?shù)質(zhì)因數(shù)分析

        非素?cái)?shù)僅指?jìng)€(gè)位為 1、3、7、9 的自然數(shù),至于個(gè)位為 0、2、4、5、6、8 的自然數(shù),肯定不是素?cái)?shù),所以不在分析之列.

        2.1 N1的質(zhì)因數(shù)

        如果N1不是素?cái)?shù),則除了1和其本身之外,必然還至少存在兩個(gè)自然數(shù),并且這兩個(gè)自然數(shù)的乘積等于N1.使乘積個(gè)位為1的情況只有以下3種可能性:

        A1×B1=N1,其中A1、B1代表個(gè)位為1的自然數(shù).

        A3×B7=N1,其中A3、B7分別代表個(gè)位為3和7的自然數(shù).

        A9×B9=N1,其中A9、B9代表個(gè)位為9的自然數(shù).

        2.2 N3的質(zhì)因數(shù)

        如果N3不是素?cái)?shù),則除了1和其本身之外,必然還至少存在兩個(gè)自然數(shù),并且這兩個(gè)自然數(shù)的乘積等于N3.使乘積個(gè)位為3的情況只有以下2種:

        A1×B3=N3,其中A1、B3分別代表個(gè)位為1和3的自然數(shù).

        A7×B9=N3,其中A7、B9分別代表個(gè)位為7和9的自然數(shù).

        2.3 N7的質(zhì)因數(shù)

        如果N7不是素?cái)?shù),則除了1和其本身之外,必然還至少存在兩個(gè)自然數(shù),并且這兩個(gè)自然數(shù)的乘積等于N7.使乘積個(gè)位為7的情況只有以下2種:

        A1×B7=N7,其中A1、B7分別代表個(gè)位為1和7的自然數(shù).

        A3×B9=N7,其中A3、B9分別代表個(gè)位為3和9的自然數(shù).所以判斷N7是不是素?cái)?shù),除數(shù)M不必依次取2到[]的值,只需取其中個(gè)位為3、7(或3、1,或9、7,或9、1)的數(shù)即可.這樣大大減少了循環(huán)次數(shù),效率提高5倍.

        式中:Δy(k+1)=y(k+1)-y(k);Δu(k)=u(k)-u(k-1);φ(k)——偽偏導(dǎo)數(shù)。

        判斷N3和N7是否為素?cái)?shù)的方法可以合二為一.

        2.4 N9的質(zhì)因數(shù)

        如果N9不是素?cái)?shù),則除了1和其本身之外,必然還至少存在兩個(gè)自然數(shù),并且這兩個(gè)自然數(shù)的乘積等于N9.使乘積個(gè)位為9的情況只有以下3種:

        A1×B9=N9,其中A1、B9分別代表個(gè)位為1和9的自然數(shù)

        A3×B3=N9,其中A3、B3代表個(gè)位為3的自然數(shù)

        A7×B7=N9,其中A7、B7代表個(gè)位為7的自然數(shù)所以判斷N9是不是素?cái)?shù),除數(shù)M不必依次取2到[]的值,只需取其中個(gè)位為9、7、3(或7、3、1)的數(shù)即可.這樣大大減少了循環(huán)次數(shù),效率提高10/3倍.

        3 改進(jìn)的算法

        3.1 改進(jìn)的素?cái)?shù)算法

        基于上文的分析,判斷一個(gè)兩位以上的自然數(shù)N是否為素?cái)?shù),先取其個(gè)位,若個(gè)位數(shù)是0、2、4、5、6、8,則N一定不是素?cái)?shù),若個(gè)位是1、3、7、9,則根據(jù)不同的情況,進(jìn)入不同的循環(huán).只是增加了一次判斷,但卻提高效率10/3倍或5倍以上.

        改進(jìn)的算法(算法3)如下:

        3.2 效率更高的素?cái)?shù)算法

        素?cái)?shù)的判定算法3還可以進(jìn)一步優(yōu)化為算法4,優(yōu)化主要考慮兩方面:①算法3中作為除數(shù)的以1、3、7、9結(jié)尾的數(shù)中還有一些不是素?cái)?shù)的數(shù),如果把這些非素?cái)?shù)從中去掉,可以進(jìn)一步提高效率;②構(gòu)造必要的素?cái)?shù)表,借助于素?cái)?shù)表可以提高計(jì)算效率.

        根據(jù)數(shù)論的相關(guān)知識(shí),合數(shù)可以分解為若干個(gè)素?cái)?shù)的乘積,所以判斷一個(gè)數(shù)N是否為素?cái)?shù),只需要用2~之間的素?cái)?shù)去除即可.為進(jìn)一步提高效率,在實(shí)際計(jì)算過(guò)程中,可以構(gòu)建素?cái)?shù)表T1、T2、T3…TK其中T1定義為10以?xún)?nèi)的素?cái)?shù)表(將2和5去掉),T2定義為100以?xún)?nèi)的素?cái)?shù)表,T3定義為1 000以?xún)?nèi)的素?cái)?shù)表,即T1={3,7},T2={3,7,11,13,17…97},T3={3,7,11,13……97,101,103,107…991,997},其它素?cái)?shù)表以此類(lèi)推.當(dāng)然,除素?cái)?shù)表1外,更高一級(jí)素?cái)?shù)表的構(gòu)建也使用算法4,為免去不必要的計(jì)算,T1中去掉素?cái)?shù)2和5,原因很簡(jiǎn)單,因?yàn)樗財(cái)?shù)只是以1、3、7、9結(jié)尾的,所以T1素?cái)?shù)表中完全可以將2、5去掉,這對(duì)于生成T2、T3…TK在效率上有著顯著提高.例如想計(jì)算 11~100 之間的素?cái)?shù),只需要將 11、13、17、19、21、23、27、29……91、93、97、99這36個(gè)數(shù)用3和7去除即可,實(shí)際運(yùn)算次數(shù)只有54次,而使用經(jīng)典算法運(yùn)算次數(shù)為228次,所以算法4和經(jīng)典算法(算法2)有著顯著的提高.算法4描述如下:

        (1)設(shè)定變量P=0,作為標(biāo)志變量,P=0表示N為素?cái)?shù),P=1表示N不是素?cái)?shù);設(shè)定變量K,K為N的位數(shù).如果 K=1,則 T1={3,7}.

        (2)如果TK-1不存在,先計(jì)算生成TK-2;如果TK-1存在,M從素?cái)?shù)表TK-1中依次取值循環(huán)執(zhí)行(3);

        (4)取 TK-1中的下一數(shù)值回到(3).如全部取完,則到(5);

        (5)如果P=0,則N是素?cái)?shù),否則N不是素?cái)?shù).

        為了進(jìn)一步提高計(jì)算效率,建議將T1、T2……生成素?cái)?shù)表直接保存在文件中,使用時(shí)直接讀入即可,這樣可以免去遞歸調(diào)用算法的次數(shù),從而提高效率.比如想求10 000以?xún)?nèi)的素?cái)?shù),只需要調(diào)用100以?xún)?nèi)的素?cái)?shù)表即可.

        4 小結(jié)

        在判斷兩位以上的數(shù)是否為素?cái)?shù)時(shí),算法4確實(shí)比算法3、算法2和算法1效率高出許多,尤其是對(duì)于計(jì)算機(jī)公鑰密碼中,需要一個(gè)幾百甚至上千位的素?cái)?shù),所選擇的素?cái)?shù)位數(shù)越多,加密的安全性就越高,所以改進(jìn)判斷素?cái)?shù)的算法,提高效率是非常必要的.設(shè)計(jì)一個(gè)算法來(lái)判斷一個(gè)數(shù)是否是素?cái)?shù)以及對(duì)其質(zhì)因子查找的效率,直接影響到計(jì)算機(jī)RSA加密可靠性,其實(shí)素?cái)?shù)還是有著一定的內(nèi)在規(guī)律,很多人提出針對(duì)某個(gè)有限范圍的素?cái)?shù)表示[10-13].將來(lái)也許有可能使用一種或幾種形式的公式將所有的素?cái)?shù)表示出來(lái),至少可以找到構(gòu)成素?cái)?shù)的必要條件或者充分條件,那樣就可以推導(dǎo)出運(yùn)算效率更高的素?cái)?shù)求解算法.

        [1]盧開(kāi)澄.計(jì)算機(jī)密碼學(xué)[M].北京:清華大學(xué)出版社,2003.

        [2]William S.密碼編碼學(xué)與網(wǎng)絡(luò)安全——原理與實(shí)踐[M].北京:電子工業(yè)出版社,2008.

        [3]陳景潤(rùn).初等數(shù)論(Ⅰ)[M].北京:科學(xué)出版社,1978.

        [4]陳景潤(rùn).初等數(shù)論(Ⅱ)[M].北京:科學(xué)出版社,1980.

        [5]潘承洞,潘承彪.歌德巴赫猜想[M].北京:科學(xué)出版社,1981.

        [6]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.

        [7]張福炎.程序員級(jí)高級(jí)程序員級(jí)程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1993.

        [8]潘承洞.初等數(shù)論[M].北京:北京大學(xué)出版社,1997.

        [9]譚浩強(qiáng),田淑清.BASIC語(yǔ)言程序設(shè)計(jì)[M].北京:科學(xué)普及出版社,1993.

        [10]孫琦,曠京華.素?cái)?shù)判定與大數(shù)分解[M].山東:教育出版社,1995.

        [11]曹云飛,楊煜,鄧小艷.一種素?cái)?shù)產(chǎn)生算法[J].信息安全與通信保密,2007(8):31-35.

        [12]韋萍萍,戎士奎.判定素?cái)?shù)的新方法及程序[J].貴州教育學(xué)院學(xué)報(bào),2005(2):1-3.

        [13]王云葵.素?cái)?shù)公式與Fermat素?cái)?shù)的判別[J].商丘師范學(xué)院學(xué)報(bào),2002(5):39-40.

        猜你喜歡
        質(zhì)因數(shù)素?cái)?shù)乘積
        孿生素?cái)?shù)
        兩個(gè)素?cái)?shù)平方、四個(gè)素?cái)?shù)立方和2的整數(shù)冪
        乘積最大
        k-重完全數(shù)的特性
        關(guān)于兩個(gè)素?cái)?shù)和一個(gè)素?cái)?shù)κ次冪的丟番圖不等式
        分解質(zhì)因數(shù)教學(xué)設(shè)計(jì)
        Dirichlet級(jí)數(shù)及其Dirichlet-Hadamard乘積的增長(zhǎng)性
        奇妙的素?cái)?shù)
        復(fù)變?nèi)呛瘮?shù)無(wú)窮乘積的若干應(yīng)用
        Dirichlet級(jí)數(shù)的Dirichlet-Hadamard乘積
        三上悠亚久久精品| 国产亚洲午夜精品久久久| 风韵丰满熟妇啪啪区99杏| 国产v片在线播放免费无码| 国产特级毛片aaaaaaa高清| 免费毛片在线视频| 久久精品韩国日本国产| 成年人视频在线观看麻豆| 国产香蕉视频在线播放| 成人性生交大片免费| 天美麻花果冻视频大全英文版| 国产亚洲视频在线观看播放| 国产白浆一区二区三区佳柔| 国产自拍高清在线观看| 国产激情视频一区二区三区| 推油少妇久久99久久99久久| 国产精品亚洲婷婷99久久精品| 毛片成人18毛片免费看| 一本无码中文字幕在线观| 精品深夜av无码一区二区| 日韩一区二区超清视频| 视频福利一区二区三区| 亚洲高清一区二区三区在线播放| 男人扒开添女人下部免费视频| 国产午夜福利小视频合集| 欧美日韩国产乱了伦| 女同在线网站免费观看| 国产av无码专区亚洲精品| 亚洲色欲综合一区二区三区| 国产未成女年一区二区| 网红尤物泛滥白浆正在播放| 亚洲丁香婷婷久久一区二区| 久久久日韩精品一区二区三区| 欧美 亚洲 国产 日韩 综AⅤ| 亚洲天堂av在线免费看| 蜜桃视频在线观看免费亚洲| 中文字幕乱偷无码av先锋蜜桃| 精品人妻VA出轨中文字幕| 国产av区亚洲av毛片| 亚洲国产精品av在线| 亚洲精品美女久久久久久久|