话不多说,先上原题:
这题我们得先把题目意思读懂了 ,因为题目说了正整数n是两个不同质数的乘积,因此它不可能再被分解为其它两个数的乘积。我之前还写了一大堆函数去判断因子是不是质数啥的,感觉好蠢啊。
还要一点需要注意的就是,从2到n遍历比从n到2遍历要省时(至于为什么?可能是因为测试数据的原因?)从2到n遍历找到最小约数之后,再用n去除就是我们需要的最大约数了。
上源码:
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin>>n;
for (int i = 2; i < n; ++i) {
if (n%i==0)
{
cout<<n/i;
break;
}
}
}