AC日记——斐波那契数列(升级版) 洛谷 P2626

斐波那契数列(升级版)

 

思路:

  水题;

 

代码:

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

#define mod (1LL<<31)

long long f[50],ans;

int main()
{
    f[1]=1,f[2]=1;
    for(int i=3;i<=48;i++) f[i]=(f[i-1]+f[i-2])%mod;
    int n;scanf("%d",&n);int lit=sqrt(f[n]);
    bool if_=true;
    for(int i=2;i<=lit;i++)
    {
        if(f[n]%i==0)
        {
            if_=false;
            break;
        }
    }
    if(if_)
    {
        printf("%d=%d",f[n],f[n]);
        return 0;
    }
    if_=true;int pos=f[n];printf("%d=",pos);
    for(int i=2;i<=lit;i++)
    {
        while(pos%i==0)
        {
            if(if_) printf("%d",i),if_=false;
            else printf("*%d",i);
            pos/=i;
        }
    }
    if(pos!=1) printf("*%d",pos);
    return 0;
}

 

posted @ 2017-05-18 20:14  IIIIIIIIIU  阅读(262)  评论(0编辑  收藏  举报