Программирование/Примеры программ на языке программирования Rust: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 145:
}
}
}
</syntaxhighlight>
 
== [[w:Факторизация|Факторизация]] чисел ==
<syntaxhighlight lang="rust">
fn factorization_unsigned(mut a:u64)->Vec<u64>
{
let mut arr:Vec<u64>=Vec::with_capacity(2);
let mut g:u64=a/2;
let mut i:u64=2u64;
arr.push(1);
while i<=g
{
g=a/i;
while a%i==0
{
arr.push(i);
a/=i;
}
i+=1;
}
if a != 1
{
arr.push(a);
}
return arr;
}
 
fn factorization_signed(mut a:i64)->Vec<i64>
{
let mut arr:Vec<i64>=Vec::with_capacity(2);
if a<0
{
arr.push(-1);
a = -a;
}
else
{
arr.push(1);
}
let mut g:i64=a/2;
let mut i:i64=2i64;
while i<=g
{
g=a/i;
while a%i==0
{
arr.push(i);
a/=i;
}
i+=1;
}
if a != 1
{
arr.push(a);
}
return arr;
}
 
 
fn main()
{
let num1=-9;
{
let arr=factorization_signed(num1);
print!("factorization_signed({}) = [", num1);
for _i in &arr[..arr.len()-1]
{
print!("{}, ", _i);
}
println!("{}]", arr[arr.len()-1]);
}
let num2=9;
{
let arr=factorization_unsigned(num2);
print!("factorization_unsigned({}) = [", num2);
for _i in &arr[..arr.len()-1]
{
print!("{}, ", _i);
}
println!("{}]", arr[arr.len()-1]);
}
}
</syntaxhighlight>