素数

素数

素数就是只能被1和其自身整除,且大于1的自然数
RSA算法中用到大素数

判断n是否为素数,简单的方法是将n按顺序除以比2大的数字,看是否能被整除(n%m==0

public class Prime {

    private boolean isPrime(int n) {
        if (n <= 1 || (n != 2 && ((n & 1) == 0))) {
            return false;
        }

        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

费马小定理

p = 素数
n < p
np mod p = n
对于任意素数p,上面事务公式都成立

public class Prime {

    /**
     * 根据费马小定理判断是否为素数
     * @param n 输入整数
     * @param k 最大循环次数
     * @return
     */
    private static boolean isPrime(int n, int k) {
        if (n <= 1 || (n != 2 && ((n & 1) == 0))) {
            return false;
        }

        while (k > 0) {
            int rand = (int) (Math.random() * n);
            if (Math.pow(rand, n) % n != rand) {
                return false;
            }
            k--;
        }
        return true;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自Matrix大牛一个数是素数(也叫质数),当且仅当它的约数只有两个——1和它本身。规定这两个约数不能相同,因...
    Gitfan阅读 2,128评论 0 1
  • 什么是素数 素数又称质数,是指大于1的自然数中,除了1和它本身,不能被其它自然数整除的数字。1被定义为非素数。大于...
    程点阅读 7,353评论 1 7
  • 素数 稍微学过数学的人都很清楚素数(质数)这一概念,它被定义为:在大于1的自然数中,除了1和它本身以外不再有其他因...
    金戈大王阅读 2,048评论 4 1
  • 阅读第三十天,初始条件。在松本清张笔下,婚姻常是寂寞而又无聊的,是桎梏人性的一副枷锁。这种禁锢感,对于女性尤甚,她...
    cyanshade阅读 1,054评论 0 3
  • 文/丁水汀 少年时代,喜欢打打杀杀。江湖人称,丁老阿。 有一天,我被打,跑了三里路。找到一暗洞,修炼三小时。 回学...
    丁水汀阅读 245评论 0 0