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

Содержимое удалено Содержимое добавлено
Строка 377:
</syntaxhighlight>
 
== Нахождение [[w: Наибольший_общий_делитель|наибольшего общего делителя]] двух[[w: иАлгоритм_Евклида|алгоритмом болееЕвклида]] чисел,и [[w: Алгоритм_ЕвклидаНаименьшее_общее_кратное|алгоритмомнаименьшего Евклидаобщего кратного]], двух и более чисел ==
 
<syntaxhighlight lang="rust">
 
//Наибольший общий делитель
fn euclidean_algorithm(arr: &[i64]) -> std::option::Option<i64>
{
Строка 397 ⟶ 398 :
}
return arr.pop();
}
 
//Наименьшее общее кратное
fn nok(arr: &[i64]) -> std::option::Option<i64>
{
match arr.len()
{
0 | 1 => None,
_ => {
let mut arr = arr.to_vec();
let mut acc = 1;
for index in 0..arr.len()-1
{
for index1 in 1..arr.len()
{
if index == index1
{
continue;
}
acc *= euclidean_algorithm1(&[arr[index], arr[index1]]).unwrap();
}
}
Some(arr.iter().product::<i64>().abs() / acc)
}
}
}
 
Строка 402 ⟶ 428 :
let arr = vec![10, 45, 95];
 
println!("{} {}", euclidean_algorithm(&arr).unwrap(), nok(&arr).unwrap());
}
</syntaxhighlight>