递归求最大公约数和最小公倍数

最大公约数

import java.util.*

public class Main{

   public staic void main(String args[]){
    Scanner sc = new Scanner(System.in);
    int m = sc.nextInt();
    int n = sc.nextInt();
    int resout = gct(int m,int n);
   }

// must a > b
  private int gct(int a,int b){
    if (b == 0){
        return a;
      }else{
    return gct(b , a % b)
  }

}

惊讶就对了

接下来是最小公倍数

//还是复用上面的方法
private int lcm(int a ,int b){
  return a/gct(a,b)*b;
}

补充一般的思维求质数

private boolean isatom(int n){
  //过滤掉不是2的偶数和负数
  if (n < 2){return false;}
  if ((n != 2 )&& (n & 1 == o)){return false;}
  
  for (int i = 2; i <= Math.sqrt(n); i++{
    if (Math.sqrt(n) % i == 0 ){
    return false;
    }  
  }
  return true;
}

明天又要考试了 :《

posted @ 2022-06-12 19:48  碎酒瓶上做梦  阅读(93)  评论(0)    收藏  举报