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

最大公约数与最小公倍数

问题分析:
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;
}

你可能感兴趣的:(最大公约数与最小公倍数与素数与回文数)