P2626 斐波那契數列(升級版)


題目背景

大家都知道,斐波那契數列是滿足如下性質的一個數列: • 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<iostream>
 2 using namespace std;
 3 int a[1001];
 4 int main()
 5 {
 6     int n;
 7     cin>>n;
 8     int ans=0;
 9     a[1]=1;
10     a[2]=1;
11     for(int i=3;i<=n;i++)
12     {
13         a[i]=a[i-1]+a[i-2];
14     }
15     ans=a[n];
16     cout<<ans<<"=";
17     int j=2;
18         int flag=0;
19         
20             while(ans!=1)
21             {
22                 while(ans%j==0)
23                 {
24                     if(flag==0)
25                     {
26                         cout<<j;
27                         flag=1;
28                     }
29                     else
30                     {
31                         cout<<"*"<<j;
32                     }
33                     ans=ans/j;
34                 }
35                     
36                 j++;
37             }
38         
39         if(flag==0)
40         {
41             cout<<a[n];
42         }
43     /*for(int i=3;i<=n;i++)
44     {
45         int j=2;
46         int flag=0;
47         while(j*j<a[i])
48         {
49             while(a[i]>1)
50             {
51                 if(a[i]%j==0)
52                 {
53                     cout<<j<<"*";
54                     a[i]=a[i]/j;
55                 }
56                 else
57                 break;
58             }
59             j++;
60         }
61     }
62     cout<<ans;
63     //cout<<a[n];*/
64     return 0;
65 }

 

关注微信公众号

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com