This commit is contained in:
2023-06-15 13:24:38 +02:00
parent 468e90ac55
commit a73b6dc300
2 changed files with 73 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
/*
* 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);
}