Sal*_*n A 1 php numbers factors
我需要得到给定数字 ( n ) 的两个因子 ( x, y ),使得:
例子:
任何语言都可以,但最好是 php。
编辑——澄清
我想创建一个矩形,x 单位宽 * y 单位高,使其面积尽可能接近 n。x 和 y 必须是整数。如果 n 是素数,则 n - 1 的因数是可以接受的。
你的规格不够准确。你说你想要因子,但在你的测试用例中 4不是17 的因子
以下伪代码优先考虑一个因素是准确的
for i in range(ceiling(sqrt(n)), 1){
if ( n modulo i ) == 0 {
x = i
y = round(n/i)
}
}
Run Code Online (Sandbox Code Playgroud)
简单的 sqrt 语句可以确保数字尽可能接近,但不能保证它们是因数。
x = y = round( sqrt(n) )
Run Code Online (Sandbox Code Playgroud)