P2626 斐波那契數列(升級版) AC於2018.10.20
阿新 • • 發佈:2018-12-16
題目背景
大家都知道,斐波那契數列是滿足如下性質的一個數列:
- f(1) = 1f(1)=1
- f(2) = 1f(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
#include<iostream> #include<cmath> #include<cstdio> const long long MOD=pow(2,31); using namespace std; int n,f[49],x; int main() { scanf("%d",&n); f[1]=1; f[2]=1; for(int i=3;i<=n;i++) f[i]=(f[i-1]+f[i-2])%MOD; printf("%d=",f[n]); for(int i=2;i<=f[n];i++) while(f[n]%i==0) { x++; if(x==1) cout<<i; else printf("*%d",i); f[n]/=i; } return 0; }