Abundant, deficient and perfect number classifications: Difference between revisions
Content added Content deleted
m (→{{header|jq}}: rm ;) |
(scheme implementation) |
||
Line 547: | Line 547: | ||
Abundant: 4953 |
Abundant: 4953 |
||
Perfect: 4 (6,28,496,8128)</pre> |
Perfect: 4 (6,28,496,8128)</pre> |
||
=={{header|Scheme}}== |
|||
<lang scheme> |
|||
(define (classify n) |
|||
(define (sum_of_factors x) |
|||
(cond ((= x 1) 1) |
|||
((= (remainder n x) 0) (+ x (sum_of_factors (- x 1)))) |
|||
(else (sum_of_factors (- x 1))))) |
|||
(cond ((or (= n 1) (< (sum_of_factors (floor (/ n 2))) n)) -1) |
|||
((= (sum_of_factors (floor (/ n 2))) n) 0) |
|||
(else 1))) |
|||
(define n_perfect 0) |
|||
(define n_abundant 0) |
|||
(define n_deficient 0) |
|||
(define (count n) |
|||
(cond ((= n 1) (begin (display "perfect ") |
|||
(display n_perfect) |
|||
(newline) |
|||
(display "abundant") |
|||
(display n_abundant) |
|||
(newline) |
|||
(display "deficinet") |
|||
(display n_perfect) |
|||
(newline))) |
|||
((equal? (classify n) 0) (begin (set! n_perfect (+ 1 n_perfect)) (display n) (newline) (count (- n 1)))) |
|||
((equal? (classify n) 1) (begin (set! n_abundant (+ 1 n_abundant)) (count (- n 1)))) |
|||
((equal? (classify n) -1) (begin (set! n_deficient (+ 1 n_deficient)) (count (- n 1)))))) |
|||
</lang> |
|||
=={{header|VBScript}}== |
=={{header|VBScript}}== |