【GESP】C++二级练习 luogu-B3719 [语言月赛202303] Factorial B
GESP二级练习,纯小思维练习不涉及编程语法,难度★☆☆☆☆。
luogu-B3719 [语言月赛202303] Factorial B
题目要求
题目描述
Farmer John 的孩子做数学题时遇到了一个难题,想要请你解答一下。
这道数学题是,$n!$ 是否是 $12$ 的倍数。
$n!$ 是 $n$ 的阶乘。一般来讲,对于一个正整数 $n$,$n! = 1 \times 2 \times 3 \times \cdots \times n$。特别的,$0 ! = 1$。
Farmer John 也觉得这个问题太难了,因此他想要把这道题交给你来完成,请你帮助他完成这个问题。
输入格式
输入共一行一个整数 $n$。
输出格式
输出共一行一个字符串。
对第一行,如果 $n!$ 是 $12$ 的倍数,输出
Yes
,否则输出No
。
输入 #1
1
3
输出 #1
1
No
输入 #2
1
7
输出 #2
1
Yes
数据规模与约定
对于 $100\%$ 的数据,保证 $0 \leq n \leq 10 ^ {18}$。
测试点编号 | $n$ |
---|---|
$1 \sim 3$ | $\leq 10$ |
$4 \sim 6$ | $\leq 10 ^ 6$ |
$7 \sim 10$ | $\leq 10 ^ {18}$ |
题目分析
解题思路
- 首先,我们需要理解题目的核心要求:
- 判断 $n!$ 是否是 $12$ 的倍数
- 解题思路:
- 计算 $n!$ 并检查其是否能被 $12$ 整除
- 如果 $n \geq 4$,则 $n!$ 一定是 $12$ 的倍数,因为 其中会包含因数 $4 \times 3$。
- 如果 $n < 4$,则不是。
- 具体实现:
- 读入整数 $n$
- 如果 $n \geq 4$,直接输出 “Yes”
- 否则,输出”No”
- 根据检查结果输出 “Yes” 或 “No”
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
#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,表示程序正常结束
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
本文由作者按照 CC BY 4.0 进行授权