This repository has been archived on 2023-10-18. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
curso_rust_tinchicus/ejercicios/reto04/src/main.rs
2023-06-15 13:24:38 +02:00

66 lines
1.5 KiB
Rust

/*
* Escribe un programa que, dado un número, compruebe y muestre si es primo, fibonacci y par.
* Ejemplos:
* - Con el número 2, nos dirá: "2 es primo, fibonacci y es par"
* - Con el número 7, nos dirá: "7 es primo, no es fibonacci y es impar"
*/
fn esprimo(numero: i32) -> bool {
if numero == 0 || numero == 1 {
return false;
} else {
for i in 2..numero {
if numero % i == 0 {
return false;
}
}
return true;
}
}
fn esfibonacci(numero: i32) -> bool {
let mut vector_numeros = vec![0, 1];
let mut suma = vector_numeros[0] + vector_numeros[1];
while suma < numero {
vector_numeros.push(suma);
vector_numeros.drain(0..1);
suma = vector_numeros[0] + vector_numeros[1];
if suma > numero {
return false;
}
if suma == numero {
return true;
}
}
return false;
}
fn espar(numero: i32) -> bool {
if numero % 2 == 0 {
return true;
} else {
return false;
}
}
fn main() {
let num = 200;
let mut texto = String::new();
texto += &num.to_string();
if esprimo(num) {
texto += " es primo";
} else {
texto += " no es primo";
}
if esfibonacci(num) {
texto += ", fibonacci";
} else {
texto += ", no es fibonacci";
}
if espar(num) {
texto += " y es par";
} else {
texto += " y es impar";
}
println!("{}", texto);
}