[NOIP2012 普及组] 质因数分解
题目描述
已知正整数 $n$ 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 $n$。
输出格式
输出一个正整数 $p$,即较大的那个质数。
样例 #1
样例输入 #1
1 | 21 |
样例输出 #1
1 | 7 |
提示
$1 \le n\le 2\times 10^9$
NOIP 2012 普及组 第一题
题解
1 | import math |
题解解释
这道题要求解一个正整数 $n$,该整数是两个不同质数的乘积。你需要找出这两个质数中较大的那个,并输出。
解题思路:
- 首先导入math库。
- 通过循环,从 $i=2$ 开始逐步增加 $i$ 的值,直到 $i$ 大于等于 $n$ 的平方根。
- 在循环中,检查是否 $n$ 能被 $i$ 整除,如果是,则说明找到了一个质因数,即 $i$。
- 输出 $n$ 除以 $i$ 的结果,即较大的那个质数。
在给定的代码中,如果输入是21,那么循环会找到2是21的一个因数,然后输出21除以2的结果,即7。因此,输出为7,是较大的那个质数。
知识点
找质因数的时候,可以用平方根来提高查找速率
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 W1ndysの小屋!
评论