斐波那契的整除(nefu 115)

简介: 已知斐波那契数列有如下递归定义:f1 = 1,f2 = 1,且对于n >= 3,有fn = fn-1 + fn-2,它的前几项可以表示为1, 1,2 ,3 ,5 ,8,13,21,34…问fn的值是否能被 3 和 4 整除?

题目

已知斐波那契数列有如下递归定义:f1 = 1,f2 = 1,且对于n >= 3,有fn = fn-1 + fn-2,它的前几项可以表示为1, 1,2 ,3 ,5 ,8,13,21,34…问fn的值是否能被 3 和 4 整除?


输入

输入数据有若干组,每组数据包涵一个整数 n (1 < n < 1000000000)


输出

对应每组数据 n,若fn能被 3 整除,则输出“3”;若能被 4 整除,则输出“4”;如果能被 12 整除,则输出“YES”,否则输出“NO”


输入样例

4

6

7


输出样例

3

4

NO


AC代码

#include <iostream>
using namespace std;
int main()
{
    int n;
    while (cin >> n)
    {
        if (n % 12 == 0) puts("YES");
        else 
        {
            if (n % 4 == 0) puts("3");
            else if (n % 6 == 0) puts("4");
            else puts("NO");
        }
    }
    return 0;
}

总结

fn能被 3 整除,当且仅当 n 可以被 4 整除;fn能被 4 整除,当且仅当 n 可以被 6 整除;fn能被 12 整除,当且仅当 n 可以被 12 整除(4 和 6 的最小公倍数)

目录
相关文章
筛质数、分解质因数和快速幂的应用
筛质数、分解质因数和快速幂的应用
74 0
|
1月前
两数之和
给定整数数组 `nums` 和目标值 `target`,任务是在数组中找到和为 `target` 的两个整数并返回它们的下标。每个输入保证有唯一解,且不能重复使用同一元素。示例展示了不同情况下的输入与输出,暴力破解法通过两层循环遍历所有可能的组合来寻找解。
|
4月前
|
移动开发 算法
求其最大公约数和最小公倍数
求其最大公约数和最小公倍数。
86 5
|
3月前
|
Python
01、两数之和——2021-04-12
01、两数之和——2021-04-12
14 0
|
3月前
|
存储
Leetcode第29题(两数相除)
LeetCode第29题要求使用不包含乘法、除法和mod运算符的方法计算两个整数的商,通过记录结果的正负,将问题转化为负数处理,并利用二进制幂次方的累加来逼近除数,最后根据结果的正负返回相应的商。
22 0
|
3月前
|
Go Python
01.两数之和
01.两数之和
16 0
|
5月前
|
算法
LeetCode第29题两数相除
这篇文章介绍了LeetCode第29题"两数相除"的解题方法,通过使用加法、减法和二进制位移法代替常规的乘除操作,并考虑了整数溢出问题,提供了一种高效的算法解决方案。
LeetCode第29题两数相除
|
7月前
1.两数之和
1.两数之和
|
8月前
leetcode-29:两数相除
leetcode-29:两数相除
52 0