java - 给出两个区间之间的素数的Java程序
问题描述
我需要一个程序来打印任何两个间隔之间的所有素数,然后打印两个间隔之间有多少个素数。
所以我有一个正在运行的代码,但它不会打印数字 2,我知道 2 是质数。它正在正确地做其他所有事情。我尝试了其他一些可以打印 2 的代码,但如果我输入负数,它也会给出负数。
import java.util.Scanner;
class Main {
public static void main(String args[]) {
int first, last, flag = 0, i, j;
Scanner scanner = new Scanner(System.in);
System.out.print("\nEnter the lower bound : ");
first = scanner.nextInt();
System.out.print("\nEnter the upper bound : ");
last = scanner.nextInt();
System.out.println("The prime numbers in between the entered limits are :");
int x = 0;
for (i = first; i <= last; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 0;
break;
} else {
flag = 1;
}
}
if (flag == 1) {
x++;
System.out.println(i + " ");
}
}
System.out.println("Total number of prime numbers between " + first + " and " + last + " are " + x);
}
}
因此,如果我要输入 -5(上限)和 10(下限)它应该打印: 2 3 5 7 -5 和 10 之间的素数总数为 4
但它会打印 3 5 7 -5 到 10 之间的素数总数为 3
解决方案
内循环忽略数字 2。j < i => 2 < 2 为假
推荐阅读
- javascript - 无法将用户存储在 Express.js 会话中
- java - java - 如何在JavaFX中没有侦听器的情况下检查键是否关闭?
- excel - Excel 数据验证 - 仅添加 1 的日期
- python - 如何将日期选择器添加到 Django ModelFrom 中?
- java-stream - 为什么使用parallelStream后的编码器没有执行?
- javascript - 在 Jest 中使用带有 toHaveProperty() 的正则表达式
- ios - 在 swift 中使用 for 循环创建字典
- java - 无法在 Android 应用程序中下载从 Web 应用程序发送的媒体文件
- python - 如何有效地将跨数据帧的乘法配对
- java - 我想读取一个文本文件并根据列值对其进行拆分