rust 算法题求优化之 寻找质数与除数
想请教一下怎么优化这个题的代码
问题的描述是:
创建一个名为 divisors
/ Divisors
的函数,该函数接受一个整数 n > 1
并返回一个数组,该数组具有从最小到最大的所有整数除数(1和数字本身除外)。如果数字为质数,则返回字符串’(integer) is prime’。
我的代码是:
fn isPrime(int: u32) -> bool {
let mut sum: u32 = 0;
for i in 1..=int {
if int % i == 0 {
sum += 1;
} else {
}
}
if sum <= 2 {
true
} else {
false
}
}
fn divisors(integer: u32) -> Result<Vec<u32>, String> {
if isPrime(integer) {
let s: String = integer.to_string() + " is prime";
return Err(s);
} else {
let mut vec = Vec::new();
for i in 2..integer {
if integer % i == 0 {
vec.push(i);
} else {
}
}
Ok(vec)
}
}
代码是可以运行成功的。
现在我想问一下如何优化这个代码?或者有一种更简单的写法?
推荐文章: