本文介绍了如何使用 Java 代码在 1 到 1000 之间找到同时满足两个条件的数字:1. 属于斐波那契数列;2. 是质数。

以下是 Java 代码实现:

public class FibonacciPrime {
    public static void main(String[] args) {
        int a = 1, b = 2, c;
        boolean[] isPrime = new boolean[1001];
        isPrime[2] = true;
        for (int i = 3; i <= 1000; i += 2) {
            isPrime[i] = true;
        }
        for (int i = 3; i * i <= 1000; i += 2) {
            if (isPrime[i]) {
                for (int j = i * i; j <= 1000; j += i) {
                    isPrime[j] = false;
                }
            }
        }
        while (b <= 1000) {
            if (isPrime[b]) {
                System.out.print(b + " ");
            }
            c = a + b;
            a = b;
            b = c;
        }
    }
}

首先,我们需要先生成斐波那契数列。这里采用了迭代的方法,从 1 和 2 开始,每次计算出下一个数并更新 a 和 b 的值,直到 b 大于 1000 为止。

其次,我们需要判断一个数字是否为质数。这里采用了埃氏筛法,先初始化一个布尔数组 isPrime,表示 1 到 1000 之间的数字是否为质数。然后,从 3 开始,将所有奇数标记为质数,再从 3 开始遍历到 1000 的平方根,如果当前数是质数,则将其倍数标记为非质数。最终,isPrime 数组中为 true 的下标就是 1 到 1000 之间的所有质数。

最后,我们遍历斐波那契数列,对于每个数 b,如果它是质数,则输出它。

Java 寻找1-1000范围内满足条件的数字: 斐波那契数列和质数

原文地址: https://www.cveoy.top/t/topic/kgma 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录