斐波那契数列(升级版)

题目背景

大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数)。

题目描述

请你求出第n个斐波那契数列的数mod(或%)2^31之后的值。并把它分解质因数。

输入输出格式

输入格式:

n

输出格式:

把第n个斐波那契数列的数分解质因数。

输入输出样例

输入样例#1:
5
输出样例#1:
5=5
输入样例#2:
6
输出样例#2:
8=2*2*2

说明

n<=48

思路:斐波那契数+分解质因数

代码实现:

 1 #include<cstdio>
 2 #define LL long long
 3 const LL mod=2147483648ll;
 4 LL n,a,ans;
 5 LL f[50]={1,1};
 6 int s[10000],ss;
 7 bool v[10000000],p;
 8 int main(){
 9     scanf("%d",&n);
10     for(int i=2;i<n;i++) f[i]=(f[i-1]+f[i-2])%mod;
11     ans=f[n-1];
12     printf("%d=",ans);
13     if(ans==1) putchar('1');
14     for(LL i=2;i<=ans;i++)
15     while(ans%i==0){
16         if(p) putchar('*');
17         else p=1;
18         printf("%d",i);
19         ans/=i;
20     }
21     putchar('
');
22     return 0;
23 }

题目来源:洛谷

原文地址:https://www.cnblogs.com/J-william/p/6647288.html