Problem Description
已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
Input Format
输入只有一行,包含一个正整数n。
Output Format
输出只有一行,包含一个正整数p,即较大的那个质数。
Scope of Data
6 ≤ n ≤ 2 ∗ 109
Sample Input
21
Sample Output
7
Idea
因为由题意知n是两个不同的质数相乘得到,则由唯一分解定理可知n可以且唯一可以用这两个不同的质数的乘积表达式表示,因此我们可以将n进行质因数分解,从2开始枚举得到两个质数中相对小的一个的n的因数,即可得到结果。
Program Code
#include <iostream>
using namespace std;
int main()
{
int n, p;
cin >> n;
for(int p = 2; ; ++ p)
if(n % p == 0)
{
cout << n / p << endl;
break;
}
return 0;
}
- If you have any questions,please feel free to communicate with me.