标题
斐波纳契数列
类别
函数与递归
时间限制
2S
内存限制
256Kb
问题描述
已知一个斐波纳契数列中的数字依次为1, 1, 2, 3, 5, 8, 13, 21, 34, 55 … 。
请判断该数列中第n个数字(n从1开始计数)是不是素数。
输入说明
输入一个整数n(1<n<=40)。
输出说明
判断斐波纳契数列中的第n个数字是不是素数,如果是输出yes,否则输出该数字。
输入样例
样例1输入
6
样例2输入
4
输出样例
样例1输出
8
样例2输出
yes
#include<stdio.h>
#include<stdbool.h>
int Fibonacci(int a,int b,int n);
bool Prime_number(int num);
int main()
{
int n,num,a,b;
scanf("%d",&n);
a = b = 1;
num = Fibonacci(a,b,n);
if(Prime_number(num)) printf("%d",num);
else printf("yes");
}
int Fibonacci(int a,int b,int n)
{ int t;
n--;
if(n==0)return a;
else
{ t = b;
b = b+a;
a = t;
Fibonacci(a,b,n);
}
}
bool Prime_number(int num)
{ int i,a;
a=0;
if(num==2) a=0;
else if(num==1) a=1;
else
{
for(i=2;i<num;i++)
{
if(num%i==0)
{
a=1;
break;
}
}
}
if(a==1) return true;
else return false;
}