亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? biginteger.java

?? 整體思路 用createkey.java 文件來產生秘鑰
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
        // Copy remainder of longer number        while (bigIndex > 0)            result[--bigIndex] = big[bigIndex];        return result;    }    /**     * Returns a BigInteger whose value is <tt>(this * val)</tt>.     *     * @param  val value to be multiplied by this BigInteger.     * @return <tt>this * val</tt>     */    public BigInteger multiply(BigInteger val) {        if (signum == 0 || val.signum==0)	    return ZERO;                int[] result = multiplyToLen(mag, mag.length,                                      val.mag, val.mag.length, null);        result = trustedStripLeadingZeroInts(result);        return new BigInteger(result, signum*val.signum);    }    /**     * Multiplies int arrays x and y to the specified lengths and places     * the result into z.     */    private int[] multiplyToLen(int[] x, int xlen, int[] y, int ylen, int[] z) {        int xstart = xlen - 1;        int ystart = ylen - 1;        if (z == null || z.length < (xlen+ ylen))            z = new int[xlen+ylen];        long carry = 0;        for (int j=ystart, k=ystart+1+xstart; j>=0; j--, k--) {            long product = (y[j] & LONG_MASK) *                           (x[xstart] & LONG_MASK) + carry;            z[k] = (int)product;            carry = product >>> 32;        }        z[xstart] = (int)carry;        for (int i = xstart-1; i >= 0; i--) {            carry = 0;            for (int j=ystart, k=ystart+1+i; j>=0; j--, k--) {                long product = (y[j] & LONG_MASK) *                                (x[i] & LONG_MASK) +                                (z[k] & LONG_MASK) + carry;                z[k] = (int)product;                carry = product >>> 32;            }            z[i] = (int)carry;        }        return z;    }    /**     * Returns a BigInteger whose value is <tt>(this<sup>2</sup>)</tt>.     *     * @return <tt>this<sup>2</sup></tt>     */    private BigInteger square() {        if (signum == 0)	    return ZERO;        int[] z = squareToLen(mag, mag.length, null);        return new BigInteger(trustedStripLeadingZeroInts(z), 1);    }    /**     * Squares the contents of the int array x. The result is placed into the     * int array z.  The contents of x are not changed.     */    private static final int[] squareToLen(int[] x, int len, int[] z) {        /*         * The algorithm used here is adapted from Colin Plumb's C library.         * Technique: Consider the partial products in the multiplication         * of "abcde" by itself:         *         *               a  b  c  d  e         *            *  a  b  c  d  e         *          ==================         *              ae be ce de ee         *           ad bd cd dd de         *        ac bc cc cd ce         *     ab bb bc bd be         *  aa ab ac ad ae         *         * Note that everything above the main diagonal:         *              ae be ce de = (abcd) * e         *           ad bd cd       = (abc) * d         *        ac bc             = (ab) * c         *     ab                   = (a) * b         *         * is a copy of everything below the main diagonal:         *                       de         *                 cd ce         *           bc bd be         *     ab ac ad ae         *         * Thus, the sum is 2 * (off the diagonal) + diagonal.         *         * This is accumulated beginning with the diagonal (which         * consist of the squares of the digits of the input), which is then         * divided by two, the off-diagonal added, and multiplied by two         * again.  The low bit is simply a copy of the low bit of the         * input, so it doesn't need special care.         */        int zlen = len << 1;        if (z == null || z.length < zlen)            z = new int[zlen];                // Store the squares, right shifted one bit (i.e., divided by 2)        int lastProductLowWord = 0;        for (int j=0, i=0; j<len; j++) {            long piece = (x[j] & LONG_MASK);            long product = piece * piece;            z[i++] = (lastProductLowWord << 31) | (int)(product >>> 33);            z[i++] = (int)(product >>> 1);            lastProductLowWord = (int)product;        }        // Add in off-diagonal sums        for (int i=len, offset=1; i>0; i--, offset+=2) {            int t = x[i-1];            t = mulAdd(z, x, offset, i-1, t);            addOne(z, offset-1, i, t);        }        // Shift back up and set low bit        primitiveLeftShift(z, zlen, 1);        z[zlen-1] |= x[len-1] & 1;        return z;    }    /**     * Returns a BigInteger whose value is <tt>(this / val)</tt>.     *     * @param  val value by which this BigInteger is to be divided.     * @return <tt>this / val</tt>     * @throws ArithmeticException <tt>val==0</tt>     */    public BigInteger divide(BigInteger val) {        MutableBigInteger q = new MutableBigInteger(),                          r = new MutableBigInteger(),                          a = new MutableBigInteger(this.mag),                          b = new MutableBigInteger(val.mag);        a.divide(b, q, r);        return new BigInteger(q, this.signum * val.signum);    }    /**     * Returns an array of two BigIntegers containing <tt>(this / val)</tt>     * followed by <tt>(this % val)</tt>.     *     * @param  val value by which this BigInteger is to be divided, and the     *	       remainder computed.     * @return an array of two BigIntegers: the quotient <tt>(this / val)</tt>     *	       is the initial element, and the remainder <tt>(this % val)</tt>     *	       is the final element.     * @throws ArithmeticException <tt>val==0</tt>     */    public BigInteger[] divideAndRemainder(BigInteger val) {        BigInteger[] result = new BigInteger[2];        MutableBigInteger q = new MutableBigInteger(),                          r = new MutableBigInteger(),                          a = new MutableBigInteger(this.mag),                          b = new MutableBigInteger(val.mag);        a.divide(b, q, r);        result[0] = new BigInteger(q, this.signum * val.signum);        result[1] = new BigInteger(r, this.signum);        return result;    }    /**     * Returns a BigInteger whose value is <tt>(this % val)</tt>.     *     * @param  val value by which this BigInteger is to be divided, and the     *	       remainder computed.     * @return <tt>this % val</tt>     * @throws ArithmeticException <tt>val==0</tt>     */    public BigInteger remainder(BigInteger val) {        MutableBigInteger q = new MutableBigInteger(),                          r = new MutableBigInteger(),                          a = new MutableBigInteger(this.mag),                          b = new MutableBigInteger(val.mag);        a.divide(b, q, r);        return new BigInteger(r, this.signum);    }    /**     * Returns a BigInteger whose value is <tt>(this<sup>exponent</sup>)</tt>.     * Note that <tt>exponent</tt> is an integer rather than a BigInteger.     *     * @param  exponent exponent to which this BigInteger is to be raised.     * @return <tt>this<sup>exponent</sup></tt>     * @throws ArithmeticException <tt>exponent</tt> is negative.  (This would     *	       cause the operation to yield a non-integer value.)     */    public BigInteger pow(int exponent) {	if (exponent < 0)	    throw new ArithmeticException("Negative exponent");	if (signum==0)	    return (exponent==0 ? ONE : this);	// Perform exponentiation using repeated squaring trick        int newSign = (signum<0 && (exponent&1)==1 ? -1 : 1);	int[] baseToPow2 = this.mag;        int[] result = {1};	while (exponent != 0) {	    if ((exponent & 1)==1) {		result = multiplyToLen(result, result.length,                                        baseToPow2, baseToPow2.length, null);		result = trustedStripLeadingZeroInts(result);	    }	    if ((exponent >>>= 1) != 0) {                baseToPow2 = squareToLen(baseToPow2, baseToPow2.length, null);		baseToPow2 = trustedStripLeadingZeroInts(baseToPow2);	    }	}	return new BigInteger(result, newSign);    }    /**     * Returns a BigInteger whose value is the greatest common divisor of     * <tt>abs(this)</tt> and <tt>abs(val)</tt>.  Returns 0 if     * <tt>this==0 &amp;&amp; val==0</tt>.     *     * @param  val value with which the GCD is to be computed.     * @return <tt>GCD(abs(this), abs(val))</tt>     */    public BigInteger gcd(BigInteger val) {        if (val.signum == 0)	    return this.abs();	else if (this.signum == 0)	    return val.abs();        MutableBigInteger a = new MutableBigInteger(this);        MutableBigInteger b = new MutableBigInteger(val);        MutableBigInteger result = a.hybridGCD(b);        return new BigInteger(result, 1);    }    /**     * Left shift int array a up to len by n bits. Returns the array that     * results from the shift since space may have to be reallocated.     */    private static int[] leftShift(int[] a, int len, int n) {        int nInts = n >>> 5;        int nBits = n&0x1F;        int bitsInHighWord = bitLen(a[0]);                // If shift can be done without recopy, do so        if (n <= (32-bitsInHighWord)) {            primitiveLeftShift(a, len, nBits);            return a;        } else { // Array must be resized            if (nBits <= (32-bitsInHighWord)) {                int result[] = new int[nInts+len];                for (int i=0; i<len; i++)                    result[i] = a[i];                primitiveLeftShift(result, result.length, nBits);                return result;            } else {                int result[] = new int[nInts+len+1];                for (int i=0; i<len; i++)                    result[i] = a[i];                primitiveRightShift(result, result.length, 32 - nBits);                return result;            }        }    }    // shifts a up to len right n bits assumes no leading zeros, 0<n<32    static void primitiveRightShift(int[] a, int len, int n) {        int n2 = 32 - n;        for (int i=len-1, c=a[i]; i>0; i--) {            int b = c;            c = a[i-1];            a[i] = (c << n2) | (b >>> n);        }        a[0] >>>= n;    }    // shifts a up to len left n bits assumes no leading zeros, 0<=n<32    static void primitiveLeftShift(int[] a, int len, int n) {        if (len == 0 || n == 0)            return;        int n2 = 32 - n;        for (int i=0, c=a[i], m=i+len-1; i<m; i++) {            int b = c;            c = a[i+1];            a[i] = (b << n) | (c >>> n2);        }        a[len-1] <<= n;    }    /**     * Calculate bitlength of contents of the first len elements an int array,     * assuming there are no leading zero ints.     */    private static int bitLength(int[] val, int len) {        if (len==0)            return 0;        return ((len-1)<<5) + bitLen(val[0]);    }    /**     * Returns a BigInteger whose value is the absolute value of this     * BigInteger.      *     * @return <tt>abs(this)</tt>     */    public BigInteger abs() {	return (signum >= 0 ? this : this.negate());    }    /**     * Returns a BigInteger whose value is <tt>(-this)</tt>.     *     * @return <tt>-this</tt>     */    public BigInteger negate() {	return new BigInteger(this.mag, -this.signum);    }    /**     * Returns the signum function of this BigInteger.     *     * @return -1, 0 or 1 as the value of this BigInteger is negative, zero or     *	       positive.     */    public int signum() {	return this.signum;    }    // Modular Arithmetic Operations    /**     * Returns a BigInteger whose value is <tt>(this mod m</tt>).  This method     * differs from <tt>remainder</tt> in that it always returns a     * <i>non-negative</i> BigInteger.     *     * @param  m the modulus.     * @return <tt>this mod m</tt>     * @throws ArithmeticException <tt>m &lt;= 0</tt>     * @see    #remainder     */    public BigInteger mod(BigInteger m) {	if (m.signum <= 0)	    throw new ArithmeticException("BigInteger: modulus not positive");	BigInteger result = this.remainder(m);	return (result.signum >= 0 ? result : result.add(m));    }    /**     * Returns a BigInteger whose value is     * <tt>(this<sup>exponent</sup> mod m)</tt>.  (Unlike <tt>pow</tt>, this     * method permits negative exponents.)     *     * @param  exponent the exponent.     * @param  m the modulus.     * @return <tt>this<sup>exponent</sup> mod m</tt>     * @throws ArithmeticException <tt>m &lt;= 0</tt>     * @see    #modInverse     */    public BigInteger modPow(BigInteger exponent, BigInteger m) {	if (m.signum <= 0)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久久久久久久| 日产精品久久久久久久性色| 成人午夜看片网址| 久久综合久久综合久久| 国产成人综合亚洲网站| 欧美激情一区在线观看| 一本在线高清不卡dvd| 一区二区高清免费观看影视大全 | 亚洲美女在线一区| 色婷婷精品久久二区二区蜜臂av| 伊人夜夜躁av伊人久久| 欧美日韩一区二区电影| 久久福利资源站| 中文字幕高清不卡| 欧美日韩久久久一区| 欧美a级一区二区| 国产精品久久久久影院老司| 91美女福利视频| 日本不卡视频一二三区| 中文字幕av一区 二区| 91欧美激情一区二区三区成人| 亚洲gay无套男同| 久久久久99精品一区| 日本韩国欧美一区二区三区| 91久久精品网| 麻豆极品一区二区三区| 亚洲人成网站影音先锋播放| 91精品国产91久久久久久一区二区| 极品少妇xxxx精品少妇| 伊人色综合久久天天| 欧美第一区第二区| 91精彩视频在线| 国内精品伊人久久久久av一坑| 国产精品国产三级国产a| 欧美绝品在线观看成人午夜影视| 国产电影一区二区三区| 偷窥国产亚洲免费视频| 国产精品不卡在线观看| 日韩一区二区三区在线视频| 91在线云播放| 韩国毛片一区二区三区| 亚洲午夜久久久久久久久电影院| 国产欧美日韩视频一区二区| 亚洲午夜精品在线| 久久av资源网| 久久99最新地址| 一区二区高清在线| 国产午夜精品福利| 欧美一区二区三区在线视频| 91在线精品一区二区| 国产激情视频一区二区三区欧美 | 26uuuu精品一区二区| 欧美一a一片一级一片| 成人国产在线观看| 精品无码三级在线观看视频| 性做久久久久久久久| 亚洲欧美日韩电影| 国产精品免费看片| 久久久精品免费免费| 欧美夫妻性生活| 欧美熟乱第一页| 在线视频欧美区| 91亚洲精品久久久蜜桃网站| 国产999精品久久久久久绿帽| 捆绑调教一区二区三区| 日韩不卡一区二区三区| 亚洲图片欧美一区| 一区二区三区国产精品| 亚洲精品亚洲人成人网| 亚洲天堂中文字幕| 亚洲欧美日韩中文字幕一区二区三区| 国产日韩成人精品| 国产日韩精品一区| 欧美国产一区在线| 中文字幕高清不卡| 亚洲欧美日韩系列| 亚洲一区二区视频| 亚洲午夜精品网| 偷偷要91色婷婷| 日韩av一区二区三区| 日本在线不卡一区| 奇米一区二区三区av| 麻豆精品久久久| 国产伦理精品不卡| 不卡的av在线播放| 91亚洲男人天堂| 欧美三级电影一区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美一区二区三区男人的天堂| 欧美狂野另类xxxxoooo| 欧美本精品男人aⅴ天堂| 日韩美女视频在线| 亚洲精品一区二区三区精华液| 337p日本欧洲亚洲大胆色噜噜| 精品久久久久久久久久久久久久久久久| 日韩一区二区三免费高清| 欧美成人女星排名| 国产欧美综合色| 国产九色精品成人porny| 国产91清纯白嫩初高中在线观看| 99久久免费视频.com| 97aⅴ精品视频一二三区| 91精彩视频在线| 欧美精品久久一区| 欧美成人精品高清在线播放| 久久亚洲综合色| 亚洲欧美视频在线观看视频| 日韩电影免费在线观看网站| 国产精品一区久久久久| 色综合欧美在线视频区| 538prom精品视频线放| www精品美女久久久tv| 最新国产の精品合集bt伙计| 五月天激情综合| 成人一区二区三区在线观看| 色婷婷香蕉在线一区二区| 51精品国自产在线| 中文字幕免费不卡| 日韩影院免费视频| eeuss国产一区二区三区| 欧美福利电影网| 综合久久国产九一剧情麻豆| 日韩电影免费在线观看网站| av动漫一区二区| 欧美xxx久久| 夜夜精品视频一区二区| 国产曰批免费观看久久久| 91成人国产精品| 久久久久久久久97黄色工厂| 亚洲成人激情av| 成人动漫精品一区二区| wwww国产精品欧美| 亚洲国产美女搞黄色| 成人综合在线视频| 欧美电影免费提供在线观看| 亚洲香肠在线观看| 国产电影一区在线| 精品捆绑美女sm三区| 亚洲动漫第一页| 99久久精品免费看国产免费软件| 日韩欧美123| 天天色 色综合| 欧美自拍偷拍午夜视频| 国产精品久久久久国产精品日日| 青青草一区二区三区| 欧美日韩一区视频| 日韩伦理av电影| 成人av影院在线| 久久老女人爱爱| 精品一区二区三区免费毛片爱 | 亚洲一线二线三线久久久| 国产福利一区二区三区视频| 欧美一二三区在线| 天堂资源在线中文精品| 色婷婷久久99综合精品jk白丝| 国产精品久久久久毛片软件| 国产一区二区免费在线| 精品对白一区国产伦| 蜜臀久久99精品久久久久宅男| 亚洲免费三区一区二区| 成人av小说网| 1024成人网色www| 成人精品在线视频观看| 国产亚洲欧美一区在线观看| 国产一区二区三区不卡在线观看 | 中文字幕在线一区免费| 成人手机在线视频| 国产精品久久久久久久久免费相片| 国产精品系列在线观看| 国产人成一区二区三区影院| 国产精品自拍三区| 国产网站一区二区| 成人丝袜18视频在线观看| 中文字幕一区二区5566日韩| 99麻豆久久久国产精品免费| 中文字幕在线免费不卡| 91麻豆高清视频| 亚洲一区二区三区四区在线免费观看 | 亚洲一区二区在线免费看| 欧美日韩亚洲综合一区| 日韩综合小视频| 精品国产一区久久| 成人免费高清在线| 亚洲精品中文在线| 欧美老年两性高潮| 国产一区二区美女| 国产精品素人视频| 91久久久免费一区二区| 日韩成人伦理电影在线观看| 日韩三级伦理片妻子的秘密按摩| 国产资源在线一区| 亚洲日本在线a| 69堂国产成人免费视频| 国产宾馆实践打屁股91| 亚洲免费在线电影| 91麻豆精品国产91久久久更新时间| 另类综合日韩欧美亚洲| 国产精品网站在线播放| 777色狠狠一区二区三区| 国产精品资源在线观看|