JAVA笔记2021-8-5
习题练习
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
public class Prog_02 {
public static void main(String[] args) {
//for循环获取所有素数
for (int i = 101; i <= 200; i++) {
int count = 0;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
count++;//不是素数
}
}
if (count == 0){
System.out.println(i);
}
}
}
}
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
- 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
- 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
- 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
public class Prog_04 {
public static void main(String[] args) {
//创建键盘输入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = sc.nextInt();
System.out.print(n+"=");
//用for循环从最小的质数进行分解
for (int k = 2; k <= n; k++) {
while (n == k) {
System.out.print(n);
break;
}
while (n > k && n % k == 0) {
n /= k;
System.out.print(k + "*");
}
}
}
}