质因数分解
题目描述
已知正整数 n n n 是两个不同的质数的乘积,试求出较大的那个质数。
输入格式
输入只有一行,包含一个正整数 n n n( 6 < n < 1 0 9 6<n<10^9 6<n<109)。
输出格式
输出只有一行,包含一个正整数 p p p,即较大的那个质数。
样例 #1
样例输入 #1
21
样例输出 #1
7
参考代码
#include<stdio.h>
#include<math.h>
int main(){
int n, p;
scanf("%d", &n);
// n 是两个不同的质数的乘积
// 那么只有一组素数符合
// 6 < n < 10*9, n = 2,3,5..., 所以i <= n/2
for(int i = 3; i <= n/2; i++){
if(n % i == 0) p = i;
}
printf("%d", p);
return 0;
}