acm480

Fibonacci Again!

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 2
描述
求第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 a[33];
int b[2890000];
int main()
{
    int i,j;
    b[1]=b[0]=1;
    for(i=2; i<2890000; i++)
    {
        if(!b[i])
        {
            for(j=2*i; j<2890000; j=j+i)
            {
                b[j]=1;
            }
        }
    }
    int n;
    while(scanf("%d",&n)!=-1)
    {
        a[1]=3;
        a[2]=7;
        for(i=3; i<=n; i++)
        {
            a[i]=a[i-1]+a[i-2];
        }
        if(!b[a[n]])
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n");
        }

    }
}

你可能感兴趣的:(acm480)