【题目描述】
已知正整数n
是两个不同的质数的乘积,试求出较大的那个质数。
【输入】
输入只有一行,包含一个正整数 n。
对于60%的数据,6≤n≤1000。
对于100%的数据,6≤n≤2×109。
【输出】
输出只有一行,包含一个正整数 p,即较大的那个质数。
【输入样例】
21
【输出样例】
7

#include<iostream>
using namespace std;
#include<cmath>
bool func(int a)
{
    if (a == 2 || a == 3) {
        return true;
    }
    for (int i = 2; i <= sqrt(a) + 1; i++) {
        if (a % i == 0) {
            return false;
        }
    }
    return true;
}
int main()
{
    int n = 0;
    cin >> n;
    for (int i = 2; i <= sqrt(n) + 1; i++) {
        if (func(i)) {
            if (n % i == 0) {
                cout << n / i;
                break;
            }
        }
    }
    return 0;
}

注意在判断质数的函数,要跳过2,当为2时,循环就会执行到2,然后2%2=0,就导致返回false,会认为2不是质数。