题意:
如果一个矩形的两条边都是素数,则称此矩形为素矩形。本题给出一个素矩形的面积,请计算其两条边的值。有多个测试用例。每个用例占一行,包含一个表示素矩形面积且不超过 10 的正整数。输入直至没有数据为止。对于每个测试用例的素矩形,输出一行两个由小至大排列的整数,分别表示其边长。
解题:
因为题目的输入是个素矩形的面积,所以输入的数肯定只有两种分解(1,面积本身)(素矩形的宽,素矩形的长)。所以,我就用了简单粗暴的方法求解,如下:
c++/accepted/296k/62ms
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int n;
while (cin >> n)
{
for (int i = 2;i < sqrt(n) + 1;i++) //因为矩形的长必小于或等于宽,所以只要遍历到sqrt(n)即可
{
if (n%i == 0)
{
cout << i << " " << n / i << endl;
break;
}
}
}
return 0;
}