Java 寻找1-1000范围内满足条件的数字: 斐波那契数列和质数
本文介绍了如何使用 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,如果它是质数,则输出它。
原文地址: https://www.cveoy.top/t/topic/kgma 著作权归作者所有。请勿转载和采集!