📌  相关文章
📜  Java程序显示两个时间间隔之间的质数(1)

📅  最后修改于: 2023-12-03 14:43:03.723000             🧑  作者: Mango

Java程序显示两个时间间隔之间的质数

本程序旨在演示如何使用Java语言编写程序来显示两个时间间隔之间的所有质数。在本程序中,我们使用了两个时间变量 startTimeendTime 来指定时间间隔,然后遍历这个时间间隔中的所有整数,判断它们是否为质数。

Java判断质数的方法

判断一个数是否为质数的常见方法有两种:

  1. 试除法:从2到这个数的平方根循环遍历,如果这个数能够被任何一个小于等于它的正整数整除,则它不是质数,否则它是质数。
  2. 筛法:埃拉托斯特尼筛法和欧拉筛法是常见的筛法,它们都利用了质数的性质,通过筛除合数来得到质数。

在本程序中,我们使用了试除法来判断一个数是否为质数。

代码实现

下面是完整的Java代码:

import java.util.Scanner;

public class PrimeNumbersBetweenIntervals {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter start time in milliseconds: ");
        long startTime = scanner.nextLong();
        System.out.print("Enter end time in milliseconds: ");
        long endTime = scanner.nextLong();

        System.out.println("Prime numbers between " + startTime + " and " + endTime + " are:");

        for (long i = startTime; i <= endTime; i++) {
            if (isPrime(i)) {
                System.out.print(i + " ");
            }
        }
    }

    public static boolean isPrime(long number) {
        if (number <= 1) {
            return false;
        }

        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                return false;
            }
        }

        return true;
    }

}

在这个程序中,我们先通过 Scanner 类从控制台读入两个时间变量 startTimeendTime,然后使用 for 循环遍历从 startTimeendTime 之间的所有整数,判断它们是否为质数,如果是则输出到控制台上。

判断一个数是否为质数的方法 isPrime 接受一个数作为参数,如果这个数小于等于1则直接返回 false,否则从2到它的平方根循环遍历,如果它能够被任何一个小于等于它的正整数整除,则它不是质数,返回 false,否则它是质数,返回 true

注意事项
  • 在本程序中,我们使用了 long 类型来存储时间变量,因为时间戳可能超出 int 类型的范围。
  • 由于判断一个数是否为质数的方法需要遍历整个区间,因此对于较大的时间间隔,程序运行时间可能较长。