Зад.1. Да се напише функция (GCD a b), която намира най-големия общ делител на две естествени числа по метода на Евклид:

function gcd(a, b)
    while a ≠ b
        if a > b
           a := a − b
        else
           b := b − a
    return a
Зад.2. Да се напише функция (LCM a b), която намира най-малкото общо кратно на две естествени числа.

Зад.3. Да се напише функция (ends-with? a b), която проверява дали числото а "завършва" на b:
(ends-with? 1234 34) -> #t
(ends-with? 56789 189) -> #f
Зад.4. Да се напише функция (substr? a b), която проверява дали числото b се съдържа в a като подстринг:
(substr? 12345 234) -> #t
(substr? 12345 423) -> #f
Зад.5. Да се напише функция (occurrences a n), която намира колко пъти цифрата a се среща в записа на естественото число n:
(occurrences 3 123123) -> 2
(occurrences 5 123123) -> 0
Зад.6. Да се напише функция (contains-digits? a b), която проверява дали всички цифри на числото b се съдържат в числото a:
(contains-digits? 12345 423) -> #t     ;забележете разликата с функцията substr?
(contains-digits? 123123123123 4) -> #f
(contains-digits? 10 1010001001010101) -> #t
Зад.7. (Бонус) Да се напише функция (toBinary n), която превръща дадено естествено число в двоична бройна система:
(toBinary 8) -> 1000 (toBinary 15) -> 1111 (toBinary 42) -> 101010
Последно модифициране: сряда, 21 октомври 2015, 22:31