day24

1:输入两个正整数m和n,求其最大公约数和最小公倍数。

public class text {  
    public static void main(String args[]){   
       gcdlcm a =new gcdlcm();  
       System.out.println("兩數的最大公約數是:"+a.gcd(10, 16));  
       System.out.println("兩數的最小公倍數是:"+a.lcm(16, 10));  
   }          
}  
class gcdlcm{  
    int gcd(int m,int n){  
        if(m<n){   //這個判斷是爲了將大數放在前面  
         int temp=n;  
         n=m;  
         m=temp;              
        }  
        if(m%n==0){     
            return n;  
        }  
          else{  
             m%=n;  
             return gcd(m,n);   
          //這裡也可以寫成gcd(n,m),就省掉了前面的判斷了,會快一點  
             }    
    }  
    int lcm(int m,int n){  
        int i=1;  
        if(m<n){   //這個判斷是爲了將大數放在前面  
             int temp=n;  
             n=m;  
             m=temp;              
            }  
        int lcm=m;  
        while(lcm%n!=0){  
            lcm=m*i;  
            i++;  
        }  
        return lcm;  
    }  
}  


2 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。


public class test1 {  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        int abcCount=0;//英文字母个数  
        int spaceCount=0;//空格键个数  
        int numCount=0;//数字个数  
        int otherCount=0;//其他字符个数  
        Scanner scan=new Scanner(System.in);  
        String str=scan.nextLine();  
        char[] ch = str.toCharArray();  
        for(int i=0;i<ch.length;i++){  
        if(Character.isLetter(ch[i])){  
        //判断是否字母  
        abcCount++;  
        }  
        else if(Character.isDigit(ch[i])){  
        //判断是否数字  
        numCount++;  
        }  
        else if(Character.isSpaceChar(ch[i])){  
        //判断是否空格键  
        spaceCount++;  
        }  
        else{  
        //以上都不是则认为是其他字符  
        otherCount++;  
        }  
        }  
        System.out.println("字母个数:"+abcCount);  
        System.out.println("数字个数:"+numCount);  
        System.out.println("空格个数:"+spaceCount);  
        System.out.println("其他字符个数:"+otherCount);  
        }  
  
}  
3 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。


public class test3{   
  public static void main(String[] args){   
    int x;  
    Scanner in = new Scanner(System.in);//定义从键盘输入   
    System.out.print("请输入一个正整数:");//提示   
    x = in.nextInt(); //将从键盘输入的数赋值给x   
    new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数   
  }   
}   
class PrimeSplit{   
  int k = 2; //将最小的质数赋值给k   
  public PrimeSplit(int x){  //小于等于1的数不可以分解   
    if(x<=1){   
      System.out.println(x+"是无效的被分解数");   
    }   
    else if(x==2){   
      System.out.println(x+"分解后的质因数为: 1*"+x);   //如果输入的是最小质数2,   
    }else {   
      System.out.print(x+"分解后的质因数为: 1"); //1是所有的正整数的质数   
      while(k<=x){   //输入的数可以被k整除   
        if(x%k==0){   
          System.out.print("*"+k);           //将k添加到结果中   
          x = x/k;//除以最小质数后重新循环   
          }   
         else{   
          k++;   
          }   
        }   
      }   
    }      
  }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值