Day024

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

public class Example6 {    
    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.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import java.util.Scanner;      
public class Example {    
    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的值,重复执行第一步。 

import java.util.*;     
public class Example4{     
  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、付费专栏及课程。

余额充值