题目描述
求第n个斐波那契数是否是一个素数,n为整数
f[n]=f[n-1]+f[n-2] (2<n<30)
f[1]=3,f[2]=7
输入
输入整数m,0<m<30,输入-1表示结束输入
输出
如果f[m]是素数 则输出Yes,否则输出No,
每行输出占一行。
每行输出占一行。
样例输入
2
3
样例输出
Yes
No
#include<stdio.h>
int main()
{
int N;
while(scanf("%d",&N)!=-1)
{
int f[30],i,k=0,a;
f[0]=3;f[1]=7;
for(i=2;i<30;i++) //事先就对数列进行对应数组元素的赋值
f[i]=f[i-1]+f[i-2];
if(N==-1)
break; //设置结束条件
if(N==1||N==2) //除去提前赋值的a[1]a[2]
{
printf("Yes\n");
continue;
}
a=f[N-1]; //进行素数判断
for(i=2;i<a;i++)
{
if(a%i==0)
{
k=1;
break;
}
}
if(k==1)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}