【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.print("n=");
for(int i=2;i<n;i++){
while(n%i==0){
System.out.print(i+"*");
n/=i;
}
}
System.out.println(n);
}
}
【运行结果】
20
n=2*2*5
【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
char str = (n>=90)?'A':(n<60?'C':'B');
System.out.println(str);
}
}
【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int m=a*b;
if(a<b){
int t = b;
b = a;
a = t;
}
while(a%b!=0){
int r = a%b;
a = b;
b = r;
}
System.out.println("最大公约数:"+b);
System.out.println("最小公倍数:"+m/b);
}
}
【运行结果】
20
12
最大公约数:4
最小公倍数:60