美文网首页DSAA
【算法】猫扑素数

【算法】猫扑素数

作者: jiantaocd | 来源:发表于2018-01-19 00:24 被阅读195次

求自然数n内所有猫扑素数

  • 猫扑数:指以2开头,后面跟任意个3的十进制数。如:2、23、233等。

  • 素数(质数):在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为素(质)数。

  • 合数:自然数中除能被1和本数整除外,还能被其他的数整除的数。如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根。例如:50,最小质因数是2,2<50的开根号,
    再比如:15,最小质因数是3,3<15的开根号。。

  • 1和0既非素数也非合数。

代码实现

public static void main(String[] args) {
        MopPrime obj = new MopPrime();
        for (int i = 0; i < Integer.MAX_VALUE; i++) {
            if (obj.isMopPrime(i)) {
                System.out.println(" 猫扑素数 :" + i);
            }
        }

    }

    private boolean isMopPrime(int n) {
        return isMop(n) && isPrime(n);
    }

    private boolean isMop(int n) {
        if (n < 10) {
            return n == 2;
        } else {
            // 从后往前按位依次检查
            return (n % 10 == 3) && isMop(n / 10);
        }
    }

    private boolean isPrime(int n) {
        boolean flag = true;
        if (n < 2) {
            flag = false; //素数不小于2
        } else {
            // 如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根。
            for (int i = 2; i <= Math.sqrt(n); i++) {
                if (n % i == 0) {
                    flag = false;
                    break;
                }

            }
        }
        return flag;
    }

判断素数的方法还可优化。思路:找规律避免无用判断。

相关文章

  • 【算法】猫扑素数

    求自然数n内所有猫扑素数 猫扑数:指以2开头,后面跟任意个3的十进制数。如:2、23、233等。 素数(质数):在...

  • 2019-08-04-猫扑素数

    猫扑素数:指以2开头,后面跟任意个3的十进制数。如:2、23、233等的所有素数 以上就是猫扑素数的求解过程了

  • Android 每日算法:猫扑素数、单词反转

    经典算法集锦,不定时更新 一、素数(质数)算法 定义: 质数(prime number)又称素数,有无限个。质数定...

  • 大型互联网公司android面试题(转载)

    第一面 1 手写算法题。 猫扑素数;1到n,求1的个数;单词反转;不会太难,主要考察你的代码规范,算法题基本会在第...

  • Android面试题2

    1 手写算法题。一共有3个,面试官随机选择一个。猫扑素数;1到n,求1的个数;单词反转。 2 Activity的加...

  • 2019-03-24

    今天写下来,关于筛子算法,计算素数,针对大数的判断。简单写一下算法,假设计算40000以内的素数。 筛子算法, 百...

  • RSA加密解密算法—数论基础

    本章涉及知识点1、素数的定义2、寻找素数算法—短除法3、寻找素数算法—筛选法4、互质关系5、欧拉函数的证明6、欧拉...

  • 素数算法

    寻找素数的算法有很多,最著名应是筛选法,以下是笔者用JavaScript编写的一个找素数的函数,借鉴了各种找素数的...

  • 素数算法

    素数在计算机中经常被运用于计算机安全(密码相关的计算),所以研究一下素数的判断算法是相当有必要的。所以现在就来看一...

  • 产品经理要懂点数学(2)

    关键词:对称加密算法,RSA算法,素数(质数),素数分布,数论。 历史 1976年以前,所有的加密方法都是同一种模...

网友评论

    本文标题:【算法】猫扑素数

    本文链接:https://www.haomeiwen.com/subject/aewgoxtx.html