已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式输入一个正整数 n。
输出格式输出一个正整数 p,即较大的那个质数。
输入输出样哩输入 #1
21
输出 #1
说明/提示7
1≤n≤2×(10的9次方)
题解本题考数学。
首先要知道唯一分解定理:一个数能且只能分解为一组质数的乘积。可知,若输入的数满足题目条件,他就只能分解为两个质数的乘积。所以在比他小且大于1的自然数中,只有那两个数能整除它,之间不可能再有任何合数或质数能整除它了,因为最小的能整除它的合数已经是他本身了。
所以代码就很容易实现了
#includeint main() { int n; scanf("%d",&n); for(int i=2;i<=n;++i) if(n%i==0) { printf("%d",n/i); return 0; } }


![P1075 [NOIP2012 普及组] 质因数分解 P1075 [NOIP2012 普及组] 质因数分解](http://www.mshxw.com/aiimages/31/1018872.png)
