Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

homework

; Assignment Number: 5
; Author: Jacob Daher
; Comment: In this code, we are deciphering Lisp functions that are given to us and how they perform; we then write Java/C++ equivalents to the given function and then afterwards, we write our own functinos to perform various taks, like returning the fibonacci sequence of a number, returning the factorial of a number, etc.


;(defun foo (x y)
   ; (- x y )
;)

;running foo
;(print (foo 4 3))
;running foo
;(print (foo 20 10))
;running foo 
;(print (foo 8 5))

;We are defining a function ID "foo"; this function takes two numbers as parameters and subtracts the second number from the first number, then returns the result of their difference.
;We are printing the return value of the foo function when it is being called. A Java equivalent would be:

;public int foo(int x, int y) {int z = x - y; return z;}

;(defun myPrint (l)
    ;(if (not (null l))
       ; (progn
           ; (print (car l))
            ;(myPrint (cdr l))
       ; )
   ; )
;)

;running myPrint
;(myPrint (quote (a b c d e)))
;;running myPrint
;(myPrint (quote (1 2 3 4 5)))
;running myPrint
;(myPrint (quote ("x" "y" "z")))

;We are defining a function ID "myPrint"; it takes a list as a parameter then uses recursion to traverse through each element in the list. Everytime it calls recursion, it first prints the first symbol in the list, then uses cdr to create a new list that omits said first symbol. This process repeats until there is no more symbols left to omit. A Java equivalent would be:

;public void myPrint(String[] array) {
    
    ;for (int i = 0; i < array.length; i++) { System.out.println(array[i); }
;}


(defun factorial1 (x) 

    (let ((s 1))
        (dotimes (n x) 
            (setf s (* s (+ n 1))) ;Uses dotimes loops to find the factorial of n, by multiplying it by all numbers from 1 to n.
        )
        
        s
    )
)

(defun factorial2 (x)

    (if (<= x 0)  
         1 ;Checks if we've reached the end of the factorial (0), and if so, we return one.
        (* (factorial2(- x 1)) x) ;Performs recursion if we have not reached 0.
    )
)           

(defun number1 (l) 
    
    (let ((x 0))  
    
        (loop for a in l ;repeats the following functions inside the loop function, equal to the number of times in the list.
        
            if (eq a 'z) ;checks if any symbols in the list match the symbol z.
            
                do(
                    setf x (+ x 1) ;Everytime the symbol z is found, one is added to the value of x.
                )
        )
        x
    )
)




(defun fib (n)  
        
        (if (< n 2) 
             n ;If we've reached the last 2 numbers (0 and 1) of our fib sequence, we make n equal to 0/1.
             (+ (fib(- n 1)) (fib(- n 2))) ;Performs recursion until we've reached the last 2 numbers of our sequence.
        )
)

(defun small (x y) 
    
    (if (< x y) x y) ;If x is smaller than y, x will be returned; if y is smaller, then y will be returned.
)

(defun sum (x)
    (let ((summation 0))
        (dotimes (n x) 
        
            (setf summation (+ summation n 1)) ;Adds numbers from 0 to n; the loop calls this function n times.
        )
        summation ;returns our summation value when using the sum function.
    )
)


;(setq x '(a b)) ;setq creates a list with the name x; using quote, we are adding symbols to the list as data as opposed adding them as code, preventing us from evaluating them.
;(setq y '(a b c)) ;setq creates a list with the name y; using quote, we are adding symbols to the list as data as opposed adding them as code, preventing us from evaluating them.
;(print (car x)) ;car returns the first symbol in x's list, that being a. (a symbol is being returned)
;(print (car y)) ;car returns the first symbol in y's list, that being b. (a symbol is being returned)
;(print (cdr x)) ;cdr returns the list containing all of the symbols after the first symbol in x's list, that being b. (a list is being returned)
;(print (cdr y)) ;cdr returns the list containing all of the symbols after the first symbol in y's list, that being b and c. (a list is being returned)
;(print (car (cdr x))) ;first uses cdr to return a new list containg all of the symbols after the first symbol in x's list, then uses car to return the first symbol in that new list (b) (a symbol is being returned)
;(print (car (cdr y))) ;first uses cdr to return a new list containg all of the symbols after the first symbol in y's list, then uses car to return the first symbol in that new list (b) (a symbol is being returned)
;(print (cadr x)) ;cadr returns the symbol in x's list that comes right after the first symbol in x's list, that being b. (a symbol is being return)
;(print (cadr y)) ;cadr returns the symbol in y's list that comes right after the first symbol in y's list, that being b. (a symbol is being return)
;(print (append x y)) ;uses append to merge both lists together and returns a list that contains all the symbols from x and y (a list is being returned)

;test defintion
(defun test() 
    (print "CSE240 Assignment 5. Jacob Daher")
    (print (factorial1 15))
    (print (factorial2 20))
    (print (number1 '(z c (z) a)))
    (print (fib 6))
    (print (small 4 7))
    (print (sum 5))
)

(test)

Execute LISP Online

;note - two conflicting seat count calcuations
;note - count is replace with ..s, i.e. seatCount -> seats
;note - consider replacing area (m2 etc.) with size to avoid confusion with facility e.g. play area
;note - consider replacing area (as in play area) with facility
;note - replace ...GC with ...Orders except for peakGC)

(defvar peakGC 261) ; peak guest count - number of orders at 50th busiest hour
(defvar growth .1) ; future growth
(defvar drivethruShare .3) ; share at drivethru of total orders
(defvar groupsize 2.5) ; group size
(defvar takeoutShare .1) ; share of orders at frontcounter that are takeout
(defvar seatingMargin 1) ; margin
(defvar seatingUtilization .8) ; seating occupancy
(defvar visitDuration 35) ; guest visit duration
(defvar topQuarterShare .25) ; top quartile (percentage of guest count during busiests 15 minuts of 50th peak hour)
(defvar orderSize 6) ; ItemCountPerOrder
(defvar servicePlatform "Multipoint")
(defvar kioskShare .3) ;peakFrontcounterKioskOrderPercentage
(defvar redirectShare .1);frontCounterKioskOrdersCashOnly
(defvar collectOrders 220) ;temporary, will be calculated
(defvar kiosksMin 3)
(defvar toiletAreas (list 25 30))
(defvar toiletA 0)
(defvar toiletThresholds (list 100 200)); indoor guests topquarterajusted (pgc * growth * (- 1 drivethruShare))
;toiletThreshold is not using takeoutShahre, seatingUitilization, margin because takeoutGuests may use toilet as well)

(defvar peakOrders 0)
(defvar registerCapacity 0)
(defvar kioskCapacity 0)
(defvar dineinGuests 0)
(defvar requiredSeats 0)
(defvar kioskOrders 0)
(defvar cashRedirects 0)
(defvar frontcounterOrders 0)
(defvar frontcounterChecks 0)
(defvar standardRegisters 0)
(defvar seats 0)
(defvar collectLength 0)


(format t "~%Peak Guest Count:  ")
(write peakGC)

(format t "~%Expected growth over next five years: ")
(write (* growth 100))
(write "%")

(setq peakOrders  
      (round 
       (* peakGC (+ 1 growth))))
(format t "~%Orders during Peak Hour (accounting for growth):  ")
(write peakOrders)
(defvar frontcounterGuests 0);i.e. picking up orders at front counter including kiosk orders and indoor takeaway), for sizing toilet
(setq frontcounterGuests
      (* peakOrders groupsize (- 1 drivethruShare)))

      (if
       (< frontcounterGuests (first toiletThresholds))
          (setq toiletA (first toiletAreas))
          (setq toiletA (second toiletAreas)))
(format t "~%Public Toilet Area: ")
(setq toiletA
    (if
        (< frontcounterGuests (first toiletThresholds))
        (first toiletAreas)
        (second toiletAreas)))
(write toiletA)
(setq dineinGuests  
      (round 
       (* peakOrders groupsize (- 1 drivethruShare) (- 1 takeoutShare) seatingMargin (/ 1 seatingUtilization))))
(format t "~%Guests dining in during peak hour accounting for utilization and margin:  ")
(write dineinGuests)

(setq seats
      (
       (lambda
           (a b c)
         (ceiling
          (* c 
             (if (> a 15)
                 (+  (* (/ -1 45 ) a b ) (* (/ 1 45 ) a) (* (/ 60 45 ) b) (/ -15 45))
                 (* ( / 1 15) a b)))))
       visitDuration 
       topQuarterShare 
       dineinGuests))
(format t "~%Number of seats required:  ")
(write seats)


(setq registerCapacity
      (if (< orderSize 5)
          90
          (if (< orderSize 8)
              60
              (if (< orderSize 12)
                  40
                  30))))

(format t "~%Register capacity at front counter (orders per hour per register):  ")
(write registerCapacity)
(setq kioskCapacity
      (if (< orderSize 5)
          30
          (if (< orderSize 8)
              25
              (if (< orderSize 12)
                  20
                  15))))

(format t "~%SOK capacity (orders per hour per SOK):  ")
(write kioskCapacity)

(setq kioskOrders
      (round 
       (* peakOrders kioskShare (- 1 drivethruShare))))
(format t "~%Orders placed at kiosks:  ")
(write kioskOrders)

(setq cashRedirects
      (round
       (* kioskOrders redirectShare)))
(format t "~%Orders placed at kiosks payed at front counter (cash redirects):  ")
(write cashRedirects)

(setq frontcounterOrders  
      (round
       (* peakOrders (- 1 drivethruShare) (- 1 kioskShare))))
(format t "~%Orders placed at front counter (excluding cash redirects):  ")
(write frontcounterOrders)

(setq frontcounterChecks
      (+ frontcounterOrders cashRedirects))
(format t "~%Checks paid at front counter (including redirects): ")
(write frontcounterChecks)
        

(setq standardRegisters
      (if (< 30 cashRedirects)
          (/ frontcounterChecks registerCapacity)
          10))
(format t "~%Standard registers at front counter: ")
(write standardRegisters)

(setq collectLength
      (if (< orderSize 5)
          (if (< collectOrders 180)
              1.2
              (if (< collectOrders 220)
                  1.5
                  (if (< collectOrders 260)
                      1.8
                      (if (< collectOrders 300)
                          2.1
                          (if (< collectOrders 340)
                              2.4
                              3.0)))))
          (if (< orderSize 8)
              (if (< collectOrders 150)
                  1.2
                  (if (< collectOrders 180)
                      1.5
                      (if (< collectOrders 220)
                          1.8
                          (if (< collectOrders 260)
                              2.1
                              (if (< collectOrders 300)
                                  2.4
                                  3.0)))))
              (if (< orderSize 12)
                  (if (< collectOrders 110)
                      1.2
                      (if (< collectOrders 150)
                          1.5
                          (if (< collectOrders 180)
                              1.8
                              (if (< collectOrders 220)                                        
                                  2.1
                                  (if (< collectOrders 240)
                                      2.4
                                      3.0)))))
                  (if (< collectOrders 70)
                      1.2
                      (if (< collectOrders 110)
                          1.5
                          (if (< collectOrders 150)                            
                              1.8
                              (if (< collectOrders 180)
                                  2.1
                                  (if (< collectOrders 220)
                                      2.4
                                      3.0)))))))))
(format t "~%Collect counter length in meters:  ")
(write collectLength)

Execute LISP Online

;note - two conflicting seat count calcuations
;note - count is replace with ..s, i.e. seatCount -> seats
;note - consider replacing area (m2 etc.) with size to avoid confusion with facility e.g. play area
;note - consider replacing area (as in play area) with facility
;note - replace ...GC with ...Orders except for peakGC)

(defvar peakGC 261) ; peak guest count - number of orders at 50th busiest hour
(defvar growth .1) ; future growth
(defvar drivethruShare .3) ; share at drivethru of total orders
(defvar groupsize 2.5) ; group size
(defvar takeoutShare .1) ; share of orders at frontcounter that are takeout
(defvar seatingMargin 1) ; margin
(defvar seatingUtilization .8) ; seating occupancy
(defvar visitDuration 35) ; guest visit duration
(defvar topQuarterShare .25) ; top quartile (percentage of guest count during busiests 15 minuts of 50th peak hour)
(defvar orderSize 6) ; ItemCountPerOrder
(defvar servicePlatform "Multipoint")
(defvar kioskShare .3) ;peakFrontcounterKioskOrderPercentage
(defvar redirectShare .1);frontCounterKioskOrdersCashOnly
(defvar collectOrders 220) ;temporary, will be calculated
(defvar kiosksMin 3)
(defvar toiletAreas (list 25 30))
(defvar toiletA 0)
(defun toiletThresholds (list 100 150)); indoor guests topquarterajusted (pgc * growth * (- 1 drivethruShare))
;toiletThreshold is not using takeoutShahre, seatingUitilization, margin because takeoutGuests may use toilet as well)

(defvar peakOrders 0)
(defvar registerCapacity 0)
(defvar kioskCapacity 0)
(defvar dineinGuests 0)
(defvar requiredSeats 0)
(defvar kioskOrders 0)
(defvar cashRedirects 0)
(defvar frontcounterOrders 0)
(defvar frontcounterChecks 0)
(defvar standardRegisters 0)
(defvar seats 0)
(defvar collectLength 0)


(format t "~%Peak Guest Count:  ")
(write peakGC)

(format t "~%Expected growth over next five years: ")
(write (* growth 100))
(write "%")

(setq peakOrders  
      (round 
       (* peakGC (+ 1 growth))))
(format t "~%Orders during Peak Hour (accounting for growth):  ")
(write peakOrders)
(defvar frontcounterGuests 0);i.e. picking up orders at front counter including kiosk orders and indoor takeaway), for sizing toilet
(setq frontcounterGuests
      (* peakOrders groupsize (- 1 drivethruShare)))

      (if
       (< frontcounterGuests (first toiletThresholds))
          (setq toiletA (first toiletAreas))
          (setq toiletA (second toiletAreas)))
(format t "~%Public Toilet Area: ")

(setq dineinGuests  
      (round 
       (* peakOrders groupsize (- 1 drivethruShare) (- 1 takeoutShare) seatingMargin (/ 1 seatingUtilization))))
(format t "~%Guests dining in during peak hour accounting for utilization and margin:  ")
(write dineinGuests)

(setq seats
      (
       (lambda
           (a b c)
         (ceiling
          (* c 
             (if (> a 15)
                 (+  (* (/ -1 45 ) a b ) (* (/ 1 45 ) a) (* (/ 60 45 ) b) (/ -15 45))
                 (* ( / 1 15) a b)))))
       visitDuration 
       topQuarterShare 
       dineinGuests))
(format t "~%Number of seats required:  ")
(write seats)


(setq registerCapacity
      (if (< orderSize 5)
          90
          (if (< orderSize 8)
              60
              (if (< orderSize 12)
                  40
                  30))))

(format t "~%Register capacity at front counter (orders per hour per register):  ")
(write registerCapacity)
(setq kioskCapacity
      (if (< orderSize 5)
          30
          (if (< orderSize 8)
              25
              (if (< orderSize 12)
                  20
                  15))))

(format t "~%SOK capacity (orders per hour per SOK):  ")
(write kioskCapacity)

(setq kioskOrders
      (round 
       (* peakOrders kioskShare (- 1 drivethruShare))))
(format t "~%Orders placed at kiosks:  ")
(write kioskOrders)

(setq cashRedirects
      (round
       (* kioskOrders redirectShare)))
(format t "~%Orders placed at kiosks payed at front counter (cash redirects):  ")
(write cashRedirects)

(setq frontcounterOrders  
      (round
       (* peakOrders (- 1 drivethruShare) (- 1 kioskShare))))
(format t "~%Orders placed at front counter (excluding cash redirects):  ")
(write frontcounterOrders)

(setq frontcounterChecks
      (+ frontcounterOrders cashRedirects))
(format t "~%Checks paid at front counter (including redirects): ")
(write frontcounterChecks)
        

(setq standardRegisters
      (if (< 30 cashRedirects)
          (/ frontcounterChecks registerCapacity)
          10))
(format t "~%Standard registers at front counter: ")
(write standardRegisters)

(setq collectLength
      (if (< orderSize 5)
          (if (< collectOrders 180)
              1.2
              (if (< collectOrders 220)
                  1.5
                  (if (< collectOrders 260)
                      1.8
                      (if (< collectOrders 300)
                          2.1
                          (if (< collectOrders 340)
                              2.4
                              3.0)))))
          (if (< orderSize 8)
              (if (< collectOrders 150)
                  1.2
                  (if (< collectOrders 180)
                      1.5
                      (if (< collectOrders 220)
                          1.8
                          (if (< collectOrders 260)
                              2.1
                              (if (< collectOrders 300)
                                  2.4
                                  3.0)))))
              (if (< orderSize 12)
                  (if (< collectOrders 110)
                      1.2
                      (if (< collectOrders 150)
                          1.5
                          (if (< collectOrders 180)
                              1.8
                              (if (< collectOrders 220)                                        
                                  2.1
                                  (if (< collectOrders 240)
                                      2.4
                                      3.0)))))
                  (if (< collectOrders 70)
                      1.2
                      (if (< collectOrders 110)
                          1.5
                          (if (< collectOrders 150)                            
                              1.8
                              (if (< collectOrders 180)
                                  2.1
                                  (if (< collectOrders 220)
                                      2.4
                                      3.0)))))))))
(format t "~%Collect counter length in meters:  ")
(write collectLength)

Execute LISP Online

;1
(defun my-fact (m)
    (cond ((= m 0) 1)
        (t (* m (my-fact (- m 1))))
        )
    )
(print (my-fact 5))

;2
(defun fibonacci(n)
  (cond ((< n 2) 1)
        (t (+ (fibonacci (- n 1)) (fibonacci (- n 2))))))
(print (fibonacci 10))

3;
(defun my-member (el myL)
    (cond ((null myL) nil)
        ((equal (car myL) el) t)
        (t (my-member el (cdr myL)))
        )
    )
(print (my-member 2 '(1 2 3 4 5 )))

;4
(defun trim-head (l n)
    (cond ((= n 0) l)
        (t (trim-head (cdr l) (- n 1 )))
        )
    )
(print (trim-head '(1 2 3 4) 2))

;5
(defun trim-tail (l n)
    (if (< (length l) n) 'ListTooSmall
    (cond ((= n 0) (reverse l))
        (t (trim-tail (cdr l) (- n 1 )))
        )
    )
    )
(defun funct (l n)
    (trim-tail (reverse l) n)
    )
(print (funct '(1 2 3 4 5 6) 3))

;6
(defun count-atoms (l)
    (cond ((null l) 0)
        ((atom l) 1)
        ((listp l) (+ (count-atoms (car l)) (count-atoms (cdr l))))
        )
)
(print (count-atoms '(1 '() 2 (3 4 5))))

;7
(defun my-inc (a b)
    (cond ((= b 0) a)
        (t (my-inc (+ a 1) (- b 1)))
        )
    )
(print (my-inc 1 3))

;8
(defun my-rev (l1 l2)
    (cond ((null l1) l2)
        (t (my-rev (cdr l1) (append (list (car l1)) l2)))
        )
    )
(print (my-rev '(1 2 3 4) '()))

;9
(defun my-member (el myL)
    (cond ((null myL) nil)
        ((atom myL) (equal myL el))
        (t (OR (my-member el (car myL)) (my-member el (cdr myL))))
        )
    )
(print (my-member 2 '(1 (2 3) 3 4 5 )))

;10
(defun squash (l) 
    (cond ((null l) nil) 
        ((atom l) (list l)) 
        (t (append (squash (car l)) (squash (cdr l))))
        )
    )
(print (squash '(1 2 (3 (4 5) 6 (7 8)) 9 10 )))

Execute LISP Online

(write-line "Hello World")

poop

(DEFUN STRLEN (X)
	(COND ((NULL X) 0)
	(( + 1 ( STRLEN ( CDR X ))))))
(print (STRLEN '(n)))

Execute LISP Online

(write-line "Hello World")

Execute LISP Online

;;; Somawürfel

;; Rohdaten
; grünes Bauteil
(defvar teil1 '(1 1 0  ; unterste Schicht
                1 0 0
                0 0 0
                
                1 0 0  ; mittlere Schicht
                0 0 0
                0 0 0
                
                0 0 0  ; oberste Schicht
                0 0 0
                0 0 0))
                 
; naturfarbenes Bauteil
(defvar teil2 '(1 1 1
                0 0 1
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0))

; gelbes Bauteil
(defvar teil3 '(1 1 0
                1 0 0
                0 0 0
                 
                0 1 0
                0 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0))
                 
; rosanes Bauteil
(defvar teil4 '(1 1 0
                1 0 0
                0 0 0
                
                0 0 0
                1 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0))
                 
; weißes Bauteil
(defvar teil5 '(1 1 1
                0 1 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0))

; rotes Bauteil
(defvar teil6 '(0 1 0
                1 1 0
                1 0 0
                
                0 0 0
                0 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0))

; schwarzes Bauteil
(defvar teil7 '(1 1 0
                0 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0
                
                0 0 0
                0 0 0
                0 0 0))
                
(mapcar #'print `(,teil1 ,teil2 ,teil3 ,teil4 ,teil5 ,teil6 ,teil7))
(terpri)
; Liste aller sieben Bauteile vereinen
(defvar alle-sieben-steine `(,teil1 ,teil2 ,teil3 ,teil4 ,teil5 ,teil6 ,teil7))
(princ "Alle sieben Steine: ")(terpri)
(print alle-sieben-steine)

Execute LISP Online

;1
(defun my-fact (m)
    (cond ((= m 0) 1)
        (t (* m (my-fact (- m 1))))
        )
    )
(print (my-fact 5))

;2
(defun fibonacci(n)
  (cond ((< n 2) 1)
        (t (+ (fibonacci (- n 1)) (fibonacci (- n 2))))))
(print (fibonacci 10))

3;
(defun my-member (el myL)
    (cond ((null myL) nil)
        ((equal (car myL) el) t)
        (t (my-member el (cdr myL)))
        )
    )
(print (my-member 2 '(1 2 3 4 5 )))

;4
(defun trim-head (l n)
    (cond ((= n 0) l)
        (t (trim-head (cdr l) (- n 1 )))
        )
    )
(print (trim-head '(1 2 3 4) 2))

;5
(defun trim-tail (l n)
    (if (< (length l) n) 'ListTooSmall
    (cond ((= n 0) (reverse l))
        (t (trim-tail (cdr l) (- n 1 )))
        )
    )
    )
(defun funct (l n)
    (trim-tail (reverse l) n)
    )
(print (funct '(1 2 3 4 5 6) 3))

;6
(defun count-atoms (l)
    (cond ((null l) 0)
        ((atom l) 1)
        ((listp l) (+ (count-atoms (car l)) (count-atoms (cdr l))))
        )
)
(print (count-atoms '(1 '() 2 (3 4 5))))

;7
(defun my-inc (a b)
    (cond ((= b 0) a)
        (t (my-inc (+ a 1) (- b 1)))
        )
    )
(print (my-inc 1 3))

;8
(defun my-rev (l1 l2)
    (cond ((null l1) l2)
        (t (my-rev (cdr l1) (append (list (car l1)) l2)))
        )
    )
(print (my-rev '(1 2 3 4) '()))

;9
(defun my-member (el myL)
    (cond ((null myL) nil)
        ((atom myL) (equal myL el))
        (t (OR (my-member el (car myL)) (my-member el (cdr myL))))
        )
    )
(print (my-member 2 '(1 (2 3) 3 4 5 )))

Execute LISP Online

(defun cocktail-sort-vector (vector predicate &aux (len (length vector)))
  (labels ((scan (start step &aux swapped)
             (loop for i = start then (+ i step) while (< 0 i len) do
               (when (funcall predicate (aref vector i)
                                        (aref vector (1- i)))
                 (rotatef (aref vector i)
                          (aref vector (1- i)))
                 (setf swapped t)))
             swapped))
    (loop while (and (scan 1         1)
                     (scan (1- len) -1))))
  vector)
 
(defun cocktail-sort (sequence predicate)
  (etypecase sequence
    (vector (cocktail-sort-vector sequence predicate))
    (list (map-into sequence 'identity
                    (cocktail-sort-vector (coerce sequence 'vector)
                                          predicate)))))
    
    (print (cocktail-sort-vector '(9 2 3 4 8 0 1 5) ))

Previous 1 ... 4 5 6 7 8 9 10 ... 35 Next
Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.