美文网首页java基础学习
最大公约数与最小公倍数与素数与回文数

最大公约数与最小公倍数与素数与回文数

作者: 迷糊银儿 | 来源:发表于2020-02-26 22:29 被阅读0次

    最大公约数与最小公倍数

    问题分析:
    a. 最小公倍数可以由两个数的乘积除以两个数的最大公约数得到。
    b. 最大公约数利用p和q之间求余,将q赋给p,再将余数 r 赋给q,并判断q是否为0的思想返回p。做如下图所示


    image.png
    // 改进版【辗转相除】 计算两个非负整数 p 和 q 的最大公约数
        public static int gcd3(int p, int q){   
        
            while(q != 0){
                int r = p % q;
                p = q;
                q = r;
            }
            return p;
        }
    //  计算两个非负整数 p 和 q 的最小公倍数
            public static int lcm(int p, int q){
                int p1 = p;
                int q1 = q;
            
                while(q != 0){
                    int r = p % q;
                    p = q;
                    q = r;
                }
                return (p1*q1)/p;
            }
    

    素数

    • 定义:质数又称为素数,一个大于1的自然数,除了1和它自身之外,不能被其他任何自然数整除的数叫质数。
    public class Demo {
        public static void main(String[] args) {
            for (int i = 2; i < 100; i++) { 
                boolean flag=true;
                for (int j = 2; j < i; j++) {
                    if(i%j==0){
                        flag=false;
                        break;
                    }
                }
                if(flag){
                    System.out.print(i+"\t");
                }
            }
        }
    }
    

    回文数

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。如121

    public boolean isPalindrome(int x) {
       if(x < 0 || (x % 10 == 0 && x != 0)){
           return false;
       }
       String str = String.valueOf(x);
       int L = str.length() - 1;
       int R = 0;
       while (L > R) {
           if (str.charAt(L) != str.charAt(R))
               return false;
           L--;
           R++;
       }
       return true;
    }
    

    相关文章

      网友评论

        本文标题:最大公约数与最小公倍数与素数与回文数

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