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