打印素数
你的代码需要从标准输入流(控制台)中读入一个正整数 n,然后计算区间 [1,n] 的所有素数,计算出结果并打印到标准输出流(控制台)中,每个素数占一行。
1≤n≤100001 \leq n \leq 100001≤n≤10000
素数是除了 1 和它自身外,不能整除其他自然数的数
- 样例一
当 n = 3 时,程序执行打印出的结果为:
2
3
- 样例二
当 n = 7 时,程序执行打印出的结果为:
2
3
5
7
思路
// 判断是否是素数方法
public static boolean judgeSu(int num) {
if (num % 2 == 0) { // 可以被2整除则非素数,直接返回false
return false;
}
int sum = (num + 1)/2; // 减少循环次数,提高效率
for (int i = 2; i < sum; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
- 主方法
public static void main(String[] args) {
Integer int1 = 0;
try {
System.out.println("请输入:"); // 读取控台数据,回车后执行
Scanner scanner = new Scanner(System.in);
String str1 = scanner.next();
int1 = Integer.valueOf(str1);
} catch (Exception e) {
e.printStackTrace();
}
// output the answer to the console according to the
// requirements of the question
for(int i = 1; i <= int1; i++) {
if (judgeSu(i)) {
System.out.println(i); // 打印结果
}
}
}
- 测试