Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main :: IO()
- main = do
- print $ "Hello world"
- factoriel :: Int -> Int
- factoriel 0 = 1
- -- Recursion 1
- reverseInteger :: Int -> Int
- reverseInteger n = (mod n 10)*10 + reverseInteger (div n 10)
- isPalindrome :: Int -> Bool
- isPalindrome n = n == reverseInteger n
- sumDigits :: Int -> Int
- sumDigits n = mod n 10 + sumDigits (div n 10)
- powRec :: Int -> Int
- powRec _ 0 = 1
- powRec x n = x * powRec x (n-1)
- isPrime :: Int -> Bool
- isPrime 1 = 1
- isPrime 2 = 2
- isPrime n = n >= 1 && helper 2
- where
- helper :: Int -> Bool
- helper i
- | (fromIntegral i) >= (sqrt $ fromIntegral n) = True
- | mod n i == 0 = False
- | otherwise = helper (i+1)
- sumDivs :: Int -> Int
- sumDivs n = helper 1
- where
- helper :: Int -> Int -> Int
- helper currentDiv
- | currentDiv >= n = n
- | mod n currentDiv == 0 = currentDiv + helper (currentDiv+1)
- | otherwise = helper (currentDiv+1)
- isPerfect :: Int -> Bool
- isPerfect n = n == sumDivs n
- hasIncDigits :: Int -> Int
- hasIncDigits n = n < 10 || mod n 10 >= mod (div n 10) 10 && hasIncDigits (div n 10)
- -- Recursion 2
- numDig :: Int -> Int
- numDig n
- | n < 0 = error "n was negative"
- | n < 10 = 1
- | otherwise = 1 + numDig (div n 10)
- isNarcistic :: Int -> Bool
- isNarcistic n = n == helper n (numDig n)
- where
- helper :: Int -> Int -> Int
- helper 0 nd = 0
- helper leftover nd = (mod leftover 10)^nd + helper (div leftover 10) nd
- hasDecDigits :: Int -> Int
- hasDecDigits 0 = 0
- hasDecDigits n = n < 10 || mod n 10 <= mod (div n 10) 10 && hasDecDigits (div n 10)
- calculateSum :: Int -> Int -> Int
- calculateSum x n = helper 0 0
- where
- helper :: Int -> Int -> Int
- helper sumOfDegree degree
- | n <= degree = sumOfDegree + x^degree
- | otherwise = helper (sumOfDegree + x^degree) (degree+1)
- findMax :: Int -> Int
- findMax n = helper n 1
- where
- helper :: Int -> Int -> Int
- helper 0 currMax = currMax
- helper num currMax
- | (mod num 10) <= currMax = helper (div num 10) (mod num 10)
- | otherwise = helper (div num 10) currMax
- factoriel 1 = 1
- factoriel n = n * factoriel (n-1)
- mySin :: Int -> Int -> Int
- mySin 0 x = x
- mySin n x = ((-1)**n * x**(2*n + 1)) / (fromIntegral $ factoriel (2*n + 1)) + mySin (n-1) x
- digitalRoot :: Int -> Int
- digitalRoot n
- | n <= 9 = 1
- | otherwise = (sumDigits n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement