Java 找出 1-1000 内既是斐波那契数又是质数的数字
以下是 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 著作权归作者所有。请勿转载和采集!