diff options
author | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2016-10-12 22:16:44 +0700 |
---|---|---|
committer | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2016-10-12 22:16:44 +0700 |
commit | cf7269205b346cf16b35d258989bb19819427e9b (patch) | |
tree | c9fff2ff44fb3ed8c70676b7c459725a611e53c5 /daily/287easy/kaprekar.py | |
parent | 9d40b667d430b90f48df11c6505878539ac542fe (diff) | |
download | cp-cf7269205b346cf16b35d258989bb19819427e9b.tar.gz |
Add /r/dailyprogrammer Challenge #287 [Easy]
Diffstat (limited to 'daily/287easy/kaprekar.py')
-rwxr-xr-x | daily/287easy/kaprekar.py | 40 |
1 files changed, 40 insertions, 0 deletions
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))) |