题目背景

大家都知道,斐波那契数列是满足如下性质的一个数列:

  • f(1)=1f(1) = 1 f(1)=1
  • f(2)=1f(2) = 1f(2)=1
  • f(n)=f(n−1)+f(n−2)f(n) = f(n-1) + f(n-2)f(n)=f(n−1)+f(n−2) (n≥2n ≥ 2n≥2 且 nnn 为整数)。

题目描述

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

输入输出格式

输入格式:

n

输出格式:

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

输入输出样例

输入样例#1:
复制

5
输出样例#1: 复制

5=5
输入样例#2: 复制

6
输出样例#2: 复制

8=2*2*2

说明

n≤48n \le 48n≤48

思路:本来用了矩阵快速幂(没看n的范围以为很大)但是死活不过因为n=48和n=47时,斐波拉契数列的值不对,但是n>48的值

都是对的,所以我就改用了比较直接的方法。

但是本题主要是用了合数分解为质数乘积的模板和利用大数是素数的概率很小的技巧。

#include<iostream>
#define ll long long
#define mod 2147483648
using namespace std;
int main()
{
ll num[];
num[] = num[] = ;
for (int i = ; i < ; ++i)
num[i] = (num[i - ] + num[i - ]) % mod;
int n;
cin >> n;
ll kk = num[n];
ll num1[], cnt = ;
for (ll i = ; kk != ; ++i)
{
while (kk%i == )
{
num1[cnt++] = i;
kk /= i;
}
if (i > )break;
}
if (kk != )num1[cnt++] = kk;
cout << num[n] << "=";
for (int i = ; i < cnt; ++i)
{
cout << num1[i] << "*\n"[i == cnt - ];
}
}

P2626 斐波那契数列(升级版)(合数的质数分解, 大数为素数的概率十分小的利用)的更多相关文章

  1. 洛谷——P2626 斐波那契数列(升级版)

    P2626 斐波那契数列(升级版) 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ ...

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

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

  3. 洛谷——P2626 斐波那契数列(升级版)矩阵

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

  4. 洛谷 P2626 斐波那契数列(升级版)

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

  5. [洛谷P2626]斐波那契数列(升级版)

    题目大意:请你求出第$n$个斐波那契数列的数$mod 2^{31}$之后的值.并把它分解质因数. 题解:乱搞 卡点:1.忘记取模 C++ Code: #include<cstdio> #i ...

  6. P2626 斐波那契数列(升级版)

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

  7. P2626 斐波那契数列(升级版) 洛谷(2626)

    https://www.luogu.org/problem/show?pid=2626 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f ...

  8. 斐波那契数列(递归)&求100以内的素数

    Java 5 添加了 java.util.Scanner 类,这是一个用于扫描输入文本的新的实用程序.它是以 前的 StringTokenizer 和 Matcher 类之间的某种结合.由于任何数据都 ...

  9. AC日记——斐波那契数列(升级版) 洛谷 P2626

    斐波那契数列(升级版) 思路: 水题: 代码: #include <cmath> #include <cstdio> #include <cstring> #inc ...

随机推荐

  1. c# 封装Dapper操作类

    using Dapper; using DapperExtensions; using System.Collections.Generic; using System.Configuration; ...

  2. flume中的拦截器

    Flume中的拦截器(interceptor),用户Source读取events发送到Sink的时候,在events header中加入一些有用的信息,或者对events的内容进行过滤,完成初步的数据 ...

  3. php编程规范整理

    该规范对其他语言,部分是通用的标准....好吧,废话不多说啦,直入正题: 1.PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 function 函数体说明 3 代码缩进 4 if省略 ...

  4. 多环境测试,scheme

      1. 新建Build Configuration 2. 新建Scheme            3. 新建User-defined Build Settings     包括bundleid以及p ...

  5. Java学习笔记之——if条件语句和三目运算符

    一.if条件语句 语法: if(条件){ 执行语句1: }else{ 执行语句2: } 二.三目运算符 ?    条件运算符 语法: 表达式?结果1:结果2: 如果表达式结果为true,则结果为结果1 ...

  6. IronPython初体验

    介绍 在 C# 程序中嵌入 IronPython 得到了很好的支持.在本教程中,我们将展示如何完成这个项目. 首先,我们将展示两个非常基本的例子,说明如何执行一个不导入任何模块的非常简单的脚本.然后, ...

  7. Java集合之HashSet源码分析

    概述 HashSet是基于HashMap来实现的, 底层采用HashMap的key来保存数据, 借此实现元素不重复, 因此HashSet的实现比较简单, 基本上的都是直接调用底层HashMap的相关方 ...

  8. SQL Server中的数据类型

    参考 SQL Server 2012编程入门经典(第4版) SQL Server 自带的数据类型 整型: 货币 近似小数 日期/时间 特殊数字 字符 Unicode 二进制 其他

  9. OneMap Client API

    MapSystem.Map.SmMap类 方法 mergerGeo:function(geoList) 将多个几何图形合并(支持面.线),组合成一个复合对象 例子: var geo=this.myMa ...

  10. Power BI 与 Azure Analysis Services 的数据关联:1、建立 Azure Analysis Services服务

    Power BI 与 Azure  Analysis Services 的数据关联:1.建立  Azure  Analysis Services服务