ACM解题之素矩阵

题意:

如果一个矩形的两条边都是素数,则称此矩形为素矩形。本题给出一个素矩形的面积,请计算其两条边的值。有多个测试用例。每个用例占一行,包含一个表示素矩形面积且不超过 108 的正整数。输入直至没有数据为止。对于每个测试用例的素矩形,输出一行两个由小至大排列的整数,分别表示其边长。

解题:

因为题目的输入是个素矩形的面积,所以输入的数肯定只有两种分解(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;
}

【原创声明】转载请标明出处:https://www.cnblogs.com/surecheun/
原文地址:https://www.cnblogs.com/surecheun/p/9648983.html