已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
4天前关闭。
Improve this question
#include <stdio.h>
int main(void) {
int n1 = 0, n2 = 1, n3, count, input_num;
printf("Please enter the number of terms: ");
scanf("%d", &input_num);
printf("%d\n%d\n", n1, n2);
for (count = 3; count <= input_num; count++) {
n3 = n1 + n2;
printf("%d\n", n3);
n1 = n2;
n2 = n3;
}
}
上面的代码输出的只是一个斐波那契数,但我想找到斐波那契素数。如何在这段代码中插入质数?
结果应该是这样的:
Please enter the number of terms: 6
Among the first 6 terms of Fibonacci series that are also prime: 2 3 5
3条答案
按热度按时间idv4meu81#
创建一个函数,我们称之为
isPrime()
,它过滤掉素数和非素数。以下是它的逻辑可能是这样的:遍历所有大于1(每个数字都能被1整除)且小于或等于输入的平方根的数字,我们称之为
n
,并检查输入是否能被这些数字整除,如果能整除则返回false,否则返回true。因为我们知道素数只能被1和它自己整除,所以这是可行的。下面是它可能看起来像:
您可以在原始代码中使用此函数:
7xllpg7q2#
bpzcxfmw3#
我们初学者应该互相帮助。:)
对于初学者来说,数字0是第一个斐波那契数。也就是说,你需要从
0
开始计数斐波那契数,并检查它们是否是素数。和这样的for循环
也应该从
0
开始。定义斐波那契数的变量应该有一个无符号整数类型,例如
unsigned int
,但最好将它们声明为unsigned long long int
类型。要确定一个数是否是素数,最好编写一个单独的函数。
下面是一个演示程序,展示了如何实现任务。
程序输出可能如下所示