GESP 二级 - 质因数分解

**时间限制:**C/C++ 1000MS,其他语言 2000MS

**内存限制:**C/C++ 256MB,其他语言 512MB

**难度:**中等

**描述**

已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。

**输入描述**

输入只有一行,包含一个正整数 n。

对于 60% 的数据,6≤n≤1000。

对于 100% 的数据,6≤n≤2×109

**输出描述**

输出只有一行,包含一个正整数 p,即较大的那个质数。

**用例输入 1**

21

**用例输出 1**

7

**C++ 内容:**

#include <iostream>
#include <cmath>

using namespace std;

bool isPrime(int n) { if (n <= 1) { return false; } for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return false; } } return true; }

int main() { int n; cin >> n;

int p = 1;
for (int i = 2; i &lt;= sqrt(n); i++) {
    if (n % i == 0 &amp;&amp; isPrime(i)) {
        p = max(p, i);
    }
}

cout &lt;&lt; p &lt;&lt; endl;

return 0;

}

GESP二级 - 质因数分解 - 算法题解

原文地址: https://www.cveoy.top/t/topic/qj6T 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录