package dev.elaine.jvmlab;

import java.time.Duration;
import java.time.Instant;

public final class CpuHotspotSample {
    private CpuHotspotSample() {
    }

    public static void main(String[] args) {
        int seconds = args.length == 0 ? 30 : Integer.parseInt(args[0]);
        Instant deadline = Instant.now().plus(Duration.ofSeconds(seconds));
        long candidate = 2;
        long primes = 0;

        System.out.println("PID=" + ProcessHandle.current().pid());
        while (Instant.now().isBefore(deadline)) {
            if (isPrime(candidate++)) {
                primes++;
            }
        }
        System.out.println("找到质数数量=" + primes);
    }

    static boolean isPrime(long number) {
        if (number < 2) {
            return false;
        }
        for (long divisor = 2; divisor * divisor <= number; divisor++) {
            if (number % divisor == 0) {
                return false;
            }
        }
        return true;
    }
}
