luogu-B3719 [语言月赛202303] Factorial B

luogu-B3719 [语言月赛202303] Factorial B

GESP二级练习,纯小思维练习不涉及编程语法,难度★☆☆☆☆。

luogu-B3719 [语言月赛202303] Factorial B

题目要求

题目描述

Farmer John 的孩子做数学题时遇到了一个难题,想要请你解答一下。

这道数学题是,n!n! 是否是 1212 的倍数。

n!n!nn 的阶乘。一般来讲,对于一个正整数 nnn!=1×2×3××nn! = 1 \times 2 \times 3 \times \cdots \times n。特别的,0!=10 ! = 1

Farmer John 也觉得这个问题太难了,因此他想要把这道题交给你来完成,请你帮助他完成这个问题。

输入格式

输入共一行一个整数 nn

输出格式

输出共一行一个字符串。

对第一行,如果 n!n!1212 的倍数,输出 Yes,否则输出 No

输入 #1

3

输出 #1

No

输入 #2

7

输出 #2

Yes

数据规模与约定

对于 100%100\% 的数据,保证 0n10180 \leq n \leq 10 ^ {18}

测试点编号nn
131 \sim 310\leq 10
464 \sim 6106\leq 10 ^ 6
7107 \sim 101018\leq 10 ^ {18}

题目分析

解题思路

  1. 首先,我们需要理解题目的核心要求:

    • 判断 n!n! 是否是 1212 的倍数
  2. 解题思路:

    • 计算 n!n! 并检查其是否能被 1212 整除
    • 如果 n4n \geq 4,则 n!n! 一定是 1212 的倍数,因为 其中会包含因数 4×34 \times 3
    • 如果 n<4n < 4,则不是。
  3. 具体实现:

    • 读入整数 nn
    • 如果 n4n \geq 4,直接输出 “Yes”
    • 否则,输出"No"
    • 根据检查结果输出 “Yes” 或 “No”

{% include custom/custom-post-content-inner.html %}


示例代码

#include <iostream>
using namespace std;
int main() {
    int n; // 定义整数变量 n
    cin >> n; // 从标准输入读取整数 n
    if (n >= 4) { // 如果 n 大于等于 4
        cout << "Yes"; // 输出 "Yes"
    } else { // 否则
        cout << "No"; // 输出 "No"
    }
    return 0; // 返回 0,表示程序正常结束
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on