66 lines
1.5 KiB
Rust
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);
|
|
}
|