about summary refs log tree commit diff
path: root/daily/287easy/kaprekar.py
diff options
context:
space:
mode:
authorRaphael McSinyx <vn.mcsinyx@gmail.com>2016-10-12 22:16:44 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2016-10-12 22:16:44 +0700
commitcf7269205b346cf16b35d258989bb19819427e9b (patch)
treec9fff2ff44fb3ed8c70676b7c459725a611e53c5 /daily/287easy/kaprekar.py
parent9d40b667d430b90f48df11c6505878539ac542fe (diff)
downloadcp-cf7269205b346cf16b35d258989bb19819427e9b.tar.gz
Add /r/dailyprogrammer Challenge #287 [Easy]
Diffstat (limited to 'daily/287easy/kaprekar.py')
-rwxr-xr-xdaily/287easy/kaprekar.py40
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)))