Haskell - Nombres molt compostos P32532


Statement
 

pdf   zip

html

Un nombre és molt compost si té més divisors que els seus anteriors. Per exemple, 12 és molt compost perquè té 6 divisors (1, 2, 3, 4, 6, 12) i tots els nombres de l’1 a l’11 tenen menys de 6 divisors. Els 15 primers nombres molt compostos són 1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720 i 840.

  1. Escriviu una funció divisors :: Int -> [Int] que retorni la llista de tots els divisors d’un nombre. No utilitzeu recursivitat.
  2. Escriviu una funció nbDivisors :: Int -> Int que retorni el nombre de divisors d’un nombre. La vostra solució no pot usar paràmetres (ha de ser point free).
  3. Escriviu una funció moltCompost :: Int -> Bool que indiqui si un nombre donat és molt compost utilitzant llistes per comprensió.

Nota:

En aquest problema, tots els nombres són nombres naturals diferents de zero.

Public test cases
  • Input

    divisors 12
    divisors 11
    nbDivisors 12
    nbDivisors 11
    moltCompost 12
    moltCompost 11
    moltCompost 840
    

    Output

    [1,2,3,4,6,12]
    [1,11]
    6
    2
    True
    False
    True
    
  • Information
    Author
    Jordi Petit, Gerard Escudero
    Language
    Catalan
    Official solutions
    Haskell
    User solutions
    Haskell