1.输入两个正整数m和n,求其最大公约数和最小公倍数。
[html] view plain copy 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.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
[html] view plain copy 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的值,重复执行第一步。
[html] view plain copy 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++; } } } } }