forked from mouredev/retos-programacion-2023
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstiven0.ts
59 lines (40 loc) · 1.57 KB
/
stiven0.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
* 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"
*/
const isPrime = ( number: number ): string => {
if ( number < 2 ) return 'debes ingresar un numero mayor a 1';
const raizOfNumber = Math.trunc( Math.sqrt( number ) );
const arrayNumbers = [ ...Array( raizOfNumber + 1 ).keys() ].filter( number => number > 1 )
let isPrime = true;
for ( let item of arrayNumbers ) {
if ( number % item === 0 ) {
isPrime = false;
break;
}
}
return isPrime ? 'es primo' : 'no es primo';
}
const isFibonacci = ( number: number ): string => {
let arrFibonacci: Array<number> = [];
let isFibonacci = false;
for ( let i = 0; i <= number + 1; i++ ) {
const result = arrFibonacci[arrFibonacci.length - 1] + arrFibonacci[arrFibonacci.length - 2] || 1;
if ( result === number || number === 0 ) {
isFibonacci = true;
break;
} else if ( result > number ) {
break;
}
arrFibonacci.push( result );
}
return isFibonacci ? 'fibonacci' : 'no es fibonacci';
}
const isEven = ( number: number ) => number % 2 === 0 ? 'es par' : 'es impar';
const checkNumber = ( number: number ): string => {
return `${ number } ${ isPrime( number ) }, ${ isFibonacci( number ) } y ${ isEven( number ) }`;
}
console.log( checkNumber(2) );
console.log( checkNumber(7) );