题目描述
已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 n。
输出格式
输出一个正整数 p,即较大的那个质数。
输入输出样例
输入 #1复制
21
输出 #1复制
7
说明/提示
1≤n≤2×
题目分析:
正整数n是两个不同质数的乘积(首先在这要知道一个数学上的唯一分解定律,下面会说),求两个质数中最大的那一个
思路分析:
给定一个数字n,从左边2开始遍历到n(实际上最多遍历到),只要存在n%i==0,直接输出n//i便得到结果,这就是唯一分解定律的作用
唯一分解定律:
如果一个数字n可以写成两个质数相乘那么除了1和它本身,还有这两个质数外,n再不存在其它的因子。
所以从2往右遍历得到第一个因子便是最小的质因子n//i便得到最大的质数因子
n=int(input())
for i in range(2,n+1):
if n%i==0:
print(n//i)
break
加油!!!