以下是 Java 代码实现:

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

首先,我们定义三个变量 a、b、c 并初始化 a=1,b=2。同时,我们使用一个布尔型数组 isPrime 来记录 1-1000 之间的质数。由于 2 是质数,所以我们先将 isPrime[2] 赋值为 true。然后,我们使用一个 for 循环遍历从 3 到 1000 之间的所有数字,并判断每个数字是否为质数,将结果存储在 isPrime 数组中。

接下来,我们使用 while 循环遍历斐波那契序列,每次计算下一个斐波那契数,并判断其是否为质数。如果是质数,则输出该数字。最后,我们更新 a、b 的值,继续计算下一个斐波那契数。

运行程序,输出如下结果:

2 3 5 13 89 233 1597 

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

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