[NOIP2012 普及组] 质因数分解

[NOIP2012 普及组] 质因数分解

W1ndys Lv6

[NOIP2012 普及组] 质因数分解

题目描述

已知正整数 $n$ 是两个不同的质数的乘积,试求出两者中较大的那个质数。

输入格式

输入一个正整数 $n$。

输出格式

输出一个正整数 $p$,即较大的那个质数。

样例 #1

样例输入 #1

1
21

样例输出 #1

1
7

提示

$1 \le n\le 2\times 10^9$

NOIP 2012 普及组 第一题

题解

1
2
3
4
5
6
7
8
9
10
11
import math

n = int(input())
i = 2
while i <= math.sqrt(n):
if n % i == 0:
break
i = i + 1

print(int(n / i))

题解解释

这道题要求解一个正整数 $n$,该整数是两个不同质数的乘积。你需要找出这两个质数中较大的那个,并输出。

解题思路:

  1. 首先导入math库。
  2. 通过循环,从 $i=2$ 开始逐步增加 $i$ 的值,直到 $i$ 大于等于 $n$ 的平方根。
  3. 在循环中,检查是否 $n$ 能被 $i$ 整除,如果是,则说明找到了一个质因数,即 $i$。
  4. 输出 $n$ 除以 $i$ 的结果,即较大的那个质数。

在给定的代码中,如果输入是21,那么循环会找到2是21的一个因数,然后输出21除以2的结果,即7。因此,输出为7,是较大的那个质数。

知识点

找质因数的时候,可以用平方根来提高查找速率

  • 标题: [NOIP2012 普及组] 质因数分解
  • 作者: W1ndys
  • 创建于 : 2024-01-31 21:16:04
  • 更新于 : 2025-01-11 18:09:36
  • 链接: https://blog.w1ndys.top/posts/98088128.html
  • 版权声明: 版权所有 © W1ndys,禁止转载。
评论