From cf7269205b346cf16b35d258989bb19819427e9b Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Wed, 12 Oct 2016 22:16:44 +0700 Subject: Add /r/dailyprogrammer Challenge #287 [Easy] --- daily/287easy/kaprekar.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 daily/287easy/kaprekar.py (limited to 'daily/287easy/kaprekar.py') diff --git a/daily/287easy/kaprekar.py b/daily/287easy/kaprekar.py new file mode 100755 index 0000000..d976e66 --- /dev/null +++ b/daily/287easy/kaprekar.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +def largest_digit(n): + return int(max(str(n))) + + +def desc_digits(n): + return int(''.join(sorted('{:04}'.format(n), reverse=True))) + + +def asc_digits(n): + return int(''.join(sorted('{:04}'.format(n)))) + + +def kaprekar(n): + i = 0 + + while n != 6174: + n = desc_digits(n) - asc_digits(n) + i += 1 + + return i + + +if __name__ == '__main__': + print('largest_digit(1234) -> {}'.format(largest_digit(1234))) + print('largest_digit(3253) -> {}'.format(largest_digit(3253))) + print('largest_digit(9800) -> {}'.format(largest_digit(9800))) + print('largest_digit(3333) -> {}'.format(largest_digit(3333))) + print('largest_digit(120) -> {}\n'.format(largest_digit(120))) + + print('desc_digits(1234) -> {}'.format(desc_digits(1234))) + print('desc_digits(3253) -> {}'.format(desc_digits(3253))) + print('desc_digits(9800) -> {}'.format(desc_digits(9800))) + print('desc_digits(3333) -> {}'.format(desc_digits(3333))) + print('desc_digits(120) -> {}\n'.format(desc_digits(120))) + + print('kaprekar(6589) -> {}'.format(kaprekar(6589))) + print('kaprekar(5455) -> {}'.format(kaprekar(5455))) + print('kaprekar(6174) -> {}'.format(kaprekar(6174))) -- cgit 1.4.1