码迷,mamicode.com
首页 > 其他好文 > 详细

[NOIP1997] P2626 斐波那契数列(升级版)

时间:2016-11-04 20:09:31      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:输入输出格式   题目   getc   ace   整数   log   pre   分解质因数   return   

 

题目背景

大家都知道,斐波那契数列是满足如下性质的一个数列: • 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

 

97年的陈酿题……要是以当时的设备水平,真不知道该怎么做了。

然而现在是小水题了。

先打个素数表,再模拟搞出来斐波那契数,之后质因数分解即可。

 

 1 /*by SilverN*/
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<cstring>
 5 #include<cstdio>
 6 #include<cmath>
 7 #include<vector>
 8 using namespace std;
 9 const long long mod=1<<31;
10 const int mxn=3000000;
11 int read(){
12     int x=0,f=1;char ch=getchar();
13     while(ch<0 || ch>9){if(ch==-)f=-1;ch=getchar();}
14     while(ch>=0 && ch<=9){x=x*10+ch-0;ch=getchar();}
15     return x*f;
16 }
17 int pri[mxn],cnt;
18 bool vis[mxn];
19 void Pri(){
20     int m=sqrt(mxn);
21     for(int i=2;i<m;i++){
22         if(!vis[i]){
23             pri[++cnt]=i;
24         }
25         for(int j=1;j<=cnt && pri[j]*i<mxn;j++){
26             vis[pri[j]*i]=1;
27             if(i%pri[j]==0)break;
28         }
29     }
30     return;
31 }
32 void dvi(long long x){
33     int i,j;
34     bool flag=0;
35     for(i=1;i<=cnt;i++){
36         while(x%pri[i]==0){
37             if(!flag)printf("%d",pri[i]);
38             else printf("*%d",pri[i]);
39             flag=1;
40             x/=pri[i];
41         }
42     }
43     if(x>1){
44         if(!flag)printf("%lld",x);
45         else printf("*%lld",x);
46     }
47     printf("\n");
48     return;
49 }
50 int n;
51 long long f[49];
52 int main(){
53     n=read();
54     Pri();
55     f[1]=1;f[2]=1;
56     for(int i=3;i<=n;i++){
57         f[i]=(f[i-1]+f[i-2])%mod;
58     }
59     printf("%lld=",f[n]);
60     dvi(f[n]);
61     return 0;
62 }

 

[NOIP1997] P2626 斐波那契数列(升级版)

标签:输入输出格式   题目   getc   ace   整数   log   pre   分解质因数   return   

原文地址:http://www.cnblogs.com/SilverNebula/p/6031284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!