题目描述 判断[ k1,k2]之间有多少个素数(包含k1和k2),并输出这些素数。 ( 1 <= k1 < k2 <= 1000 )
输入要求 输入两个正整数k1和k2。
输出要求 输出两行信息,第一行是[k1,k2]之间素数个数,第二行输出所有素数。素数之间用空格分开。
输入样例 1 10
输出样例 4 2 3 5 7
提示 最后一个素数的后面直接换行,不需要再加空格。
来源 NBU OJ 上代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a, b;
int i = 0, j = 0;
int temp = 0;//格式化用的
int sum = 0;//记录素数个数
int count = 0;//记录个数
Scanner scanner = new Scanner(System.in);
a = scanner.nextInt();
b = scanner.nextInt();
for (i = a; i <= b; i++) {
count = 0;
for (j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
}
if (count == 2) {
sum++;
}
}
System.out.println(sum);
//查找素数
for (i = a; i <= b; i++) {
count = 0;
for (j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
}
if (count == 2) {
temp++;
if (temp < sum) {
System.out.print(i + " ");//不是最后一位时输出格式
} else {
System.out.print(i);//最后一位时直接输出素数
}
}
}
System.out.println();
}
}
总结
先统计出素数的个数,再统计素数并输出素数。注意格式化。