Day024

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

[html]  view plain  copy
  1. public class Example6 {    
  2.     public static void main(String args[]){     
  3.        gcdlcm a =new gcdlcm();    
  4.        System.out.println("两数的最大公约数是:"+a.gcd(10, 16));    
  5.        System.out.println("两数的最大公约数是:"+a.lcm(16, 10));    
  6.    }            
  7. }    
  8. class gcdlcm{    
  9.     int gcd(int m,int n){    
  10.         if(m<n){   //这个判断是为了将大数放在前面   
  11.          int temp=n;    
  12.          n=m;    
  13.          m=temp;                
  14.         }    
  15.         if(m%n==0){       
  16.             return n;    
  17.         }    
  18.           else{    
  19.              m%=n;    
  20.              return gcd(m,n);     
  21.           //这里也可以写成gcd(n,m),就省掉了前面的判断了,会快一点    
  22.              }      
  23.     }    
  24.     int lcm(int m,int n){    
  25.         int i=1;    
  26.         if(m<n){   //这个判断是为了将大数放在前面   
  27.              int temp=n;    
  28.              n=m;    
  29.              m=temp;                
  30.             }    
  31.         int lcm=m;    
  32.         while(lcm%n!=0){    
  33.             lcm=m*i;    
  34.             i++;    
  35.         }    
  36.         return lcm;    
  37.     }    
  38. }    

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

[html]  view plain  copy
  1. import java.util.Scanner;      
  2. public class Example {    
  3.     public static void main(String[] args) {    
  4.         // TODO Auto-generated method stub    
  5.         int abcCount=0;//英文字母个数    
  6.         int spaceCount=0;//空格键个数    
  7.         int numCount=0;//数字个数    
  8.         int otherCount=0;//其他字符个数    
  9.         Scanner scan=new Scanner(System.in);    
  10.         String str=scan.nextLine();    
  11.         char[] ch = str.toCharArray();    
  12.         for(int i=0;i<ch.length;i++){    
  13.         if(Character.isLetter(ch[i])){    
  14.         //判断是否字母    
  15.         abcCount++;    
  16.         }    
  17.         else if(Character.isDigit(ch[i])){    
  18.         //判断是否数字    
  19.         numCount++;    
  20.         }    
  21.         else if(Character.isSpaceChar(ch[i])){    
  22.         //判断是否空格键    
  23.         spaceCount++;    
  24.         }    
  25.         else{    
  26.         //以上都不是则认为是其他字符    
  27.         otherCount++;    
  28.         }    
  29.         }    
  30.         System.out.println("字母个数:"+abcCount);    
  31.         System.out.println("数字个数:"+numCount);    
  32.         System.out.println("空格个数:"+spaceCount);    
  33.         System.out.println("其他字符个数:"+otherCount);    
  34.         }      
  35. }    

3.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 

[html]  view plain  copy
  1. import java.util.*;     
  2. public class Example4{     
  3.   public static void main(String[] args){     
  4.     int x;    
  5.     Scanner in = new Scanner(System.in);//定义从键盘输入     
  6.     System.out.print("请输入一个正整数:");//提示     
  7.     x = in.nextInt(); //将从键盘输入的数赋值给x     
  8.     new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数     
  9.   }     
  10. }     
  11. class PrimeSplit{     
  12.   int k = 2; //将最小的质数赋值给k     
  13.   public PrimeSplit(int x){  //小于等于1的数不可以分解     
  14.     if(x<=1){     
  15.       System.out.println(x+"是无效的被分解数");     
  16.     }     
  17.     else if(x==2){     
  18.       System.out.println(x+"分解后的质因数为: 1*"+x);   //如果输入的是最小质数2,     
  19.     }else {     
  20.       System.out.print(x+"分解后的质因数为: 1"); //1是所有的正整数的质数     
  21.       while(k<=x){   //输入的数可以被k整除     
  22.         if(x%k==0){     
  23.           System.out.print("*"+k);           //将k添加到结果中     
  24.           x = x/k;//除以最小质数后重新循环     
  25.           }     
  26.          else{     
  27.           k++;     
  28.           }     
  29.         }     
  30.       }     
  31.     }        
  32.   } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值