题目背景
大家都知道,斐波那契数列是满足如下性质的一个数列:
- f(1) = 1f(1)=1
- f(2) = 1f(2)=1
- f(n) = f(n-1) + f(n-2)f(n)=f(n−1)+f(n−2) (n ≥ 2n≥2 且 nn 为整数)。
题目描述
请你求出第nn个斐波那契数列的数mod(或%)2^{31}231之后的值。并把它分解质因数。
输入输出格式
输入格式:
n
输出格式:
把第nn个斐波那契数列的数分解质因数。
输入输出样例
说明
n \le 48n≤48
#include<bits/stdc++.h> using namespace std; long long f[1005]; int k[1000]; void check(int n){ int i=2; for(;i<=f[n];++i){ if(f[n]%i==0){ cout<<i; break; } } f[n]=f[n]/i; if(f[n]!=1){ cout<<"*"; } } int main(){ f[1]=1; f[2]=1; int n; cin>>n; for(int i=3;i<=n;++i){ f[i]=f[i-2]+f[i-1]; } long long mode=pow(2,31); f[n]=f[n]%mode; cout<<f[n]<<"="; while(f[n]!=1){ check(n); } }